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     设定请求的网址

posted @ 2020-12-23 18:31  nkandkn  阅读(180)  评论(0编辑  收藏  举报