extnet mvc direct method

近来在使用ext.net MVC 。由于还不是特别熟悉,所以先把使用中的一点一滴经验记录下来,以后再系统的整理。

这篇博客主要说明点击一个按钮如何调用Controler中的方法。

首先我们看一下view中的代码:

@{
    ViewBag.Title = "Login";
    Layout = null;
}
<html>
<head>
    <title>@ViewBag.Title</title>
</head>
<body>
    @Html.X().ResourceManager(ViewBag.ManagerConfig as MvcResourceManagerConfig)
    @(
 Html.X().Panel()
            .Title("Login")
            .Width(350)
            .BodyPadding(5)
            .Frame(true)
            .Layout(LayoutType.Form)
            .Items(
                  Html.X().TextField().ID("txtUserName").FieldLabel("User Name").AllowBlank(false),
                          Html.X().TextField().ID("txtPassword").FieldLabel("Password")
            )
            .Buttons(
                Html.X().Button()
                .Text("Login")
                .Handler("App.direct.Identify(App.txtUserName.getValue(), App.txtPassword.getValue());")
            )
            .X(400)
            .Y(200)
     )
</body>
</html>


然后,我们看一下这段代码生成的页面,

这段代码生成的页面如下图:



这是一个非常简单的登录页面,两个文本框,一个按钮。

问题是当点击login的时候,controler中如何进行验证呢?

我们只要在对应的controler中做两件事情:

1.把controler类标记为: [DirectController]

2.把对应的方法标记为:[DirectMethod]

如下代码所示:

using System.Web.Mvc;
using Ext.Net.MVC;
using Ext.Net;
namespace AtHome.Controllers
{
    [DirectController]
    public class LoginController : Controller
    {
          // GET: /Login/
        public ActionResult Index()
        {
            return View();
        }
        [DirectMethod]
        public ActionResult Identify(string name, string password)
        {
            //TODO: Identify username and password
            return this.Redirect("/main/index");
        }
    }
}


按照以上的去做,在点击login按钮的时候,就会调用controler中的Identify方法了,并且会传递参数。

但是为什么会这样呢?

当把类和对应的方法做了标记以后,ext.net 会在页面生成对应的代理方法,通过查看网页的源码可以看到以下内容

Ext.apply(App.direct, { Identify:function(name,password,config){return Ext.net.DirectMethod.request("Identify",Ext.applyIf(config || {}, {params:{name:name,password:password},url:"/Login/Identify"}));} });

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值