1. 程式人生 > 實用技巧 >asp.net mvc 輔助方法

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 設定請求的網址