ASP.NET MVC辅助方法小结

来源:互联网 发布:软件开发行业前景 编辑:程序博客网 时间:2024/05/22 10:43

用了ASP.NET MVC也有一年了,不过一直只会用一些常见功能,照葫芦画瓢,对其原理不甚清楚,近来空闲之余便开始看讲解其技术的书籍,才豁然开朗,现做一小结,目的有二:1 巩固知识点 2.供新手学习。

 

最直观的便是举例说明,请看下面:

 

@Html.TextBox(“name”,"value",new{id="testid",@class="testclass"})

以前一直不理解为何除了class前边要加@,其他属性都无需@,现在才知正是因为Html属性的class是C#保留字,所以在设定class时,需要加上“@”来跳脱。

 

 

再看下例:

 

@Html.TextBox(“name”,"value",ViewData["Dictionnary"] as IDictionary<string,object>)

public ActionResult Test(){      IDictionary<string,object> attr=new Dictionary<string,object>();      attr.add("class","test");      attr.add("style","color:red");      attr.add("size","20");      ViewData["Dictionary"]=attr;      return View();}

 

 

上述方法正是为了减少重复,无需在每个TextBox()中都定义相同的html属性。

 

下拉列表也如此:

 

@Html.DropdownList("list",ViewData["item"] as SelectList,"请选择")

 

 

由于ASP.NET MVC窗体只能发出GET和POST请求,为了能提供REST类似的方式来处理DELETE操作,同时又能利用同一个窗口来只允许HttpDelete动作,可以利用Html.HttpMethodOverride()这个辅助方法来模拟HTTP DELETE动作,而模拟的方法其实只是将一个隐藏字段加入窗口中而已。

 

 

@using (Html.BeginForm()){     @Html.HttpMethodOverride(HttpVerbs.Delete)    @Html.Hidden("id")    <input type="submit" value="删除" />}

 

Ajax辅助方法
使用ajax辅助方法时,必须 在页面或者MasterPage中加载MicrosoftAjax.js与MicrosoftMvcAjax.js这两个js文件,并且加载顺序要正确。

 

最常见的Ajax辅助方法有下面两个:

Ajax.ActionLink()

Ajax.BeginForm()

 

eg:

@Ajax.ActionLink("Link Text", "Test", new AjaxOptions { UpdateTargetId="ajax"})

 

下面对AjaxOptions属性做一简单介绍:

1.Conform          单击时会弹出Conform对话框

2.HttpMethod     设定Http请求方法(Get或Post)

3.InsertionMode   设定通过Ajax辅助方法取回数据时要如何将数据插入到目标DOM元素(即UpdateTargetId)中,有三种方法:

        InsertionMode.Replace   替代UpdateTargetId属性指定的内容

        InsertionMode.InsertBefore  在UpdateTargetId属性之前插入

        InsertionMode.InsertAfter  在UpdateTargetId属性之后插入

4.LoadingElementId        在读取尚未完成时所显示的文字

5.OnBegin     设定开始时要调用的javascript函数名称

6.OnComplete  设定结束时要调用的javascript函数名称

7.OnFailure     设定失败时要调用的javascript函数名称

8.OnSuccess  设定成功时要调用的javascript函数名称

9.UpdateTargetId   设定返回值要显示在哪个Id上

10.Url     设定请求的网址


原创粉丝点击