asp.net mvc 辅助方法
最直观的便是举例说明,请看下面:
@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 设定请求的网址