ASP.NET MVC輔助方法小結

jiangzhengdong發表於2013-01-20

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


相關文章