2012-01-12 60 views
13

的Ajax.BeginForm呼叫我有下面的代碼添加類在Razor視圖模式

@using (Ajax.BeginForm(new AjaxOptions { UpdateTargetId = "update_panel", Url = "/Part/SearchPart" })) 
     { 
      <input type="text" placeholder="Search Parts"/> 
      <input type="submit" value="Search"/> 
     } 

它輸出以下HTML

<form action="/Part" data-ajax="true" data-ajax-mode="replace" data-ajax-update="#update_panel" data-ajax-url="/Part/SearchPart" id="form0" method="post">       
    <input type="text" placeholder="Search Parts"/> 
     <input type="submit" value="Search"/> 
</form> 

,我想有輸出的HTML讓form>標籤擁有class =「pull-right」。我怎樣才能做到這一點?

回答

25

你可以使用one of the overloads,允許你指定的HTML屬性::

@using (Ajax.BeginForm(null, null, new AjaxOptions { UpdateTargetId = "update_panel", Url = "/Part/SearchPart" }, new { @class = "pull-right" })) 
{ 
    <input type="text" placeholder="Search Parts"/> 
    <input type="submit" value="Search"/> 
} 

另外我想多強烈建議你依靠你的表單的網址,而不是在AjaxOptions硬編碼的,因爲當你部署你的應用程序在虛擬目錄中很可能是你的硬編碼/Part/SearchPart url不起作用。更不用說如果你在Global.asax中改變你的路由模式。所以:

@using (Ajax.BeginForm("SearchPart", "Part", null, new AjaxOptions { UpdateTargetId = "update_panel" }, new { @class = "pull-right" })) 
{ 
    <input type="text" placeholder="Search Parts"/> 
    <input type="submit" value="Search"/> 
} 
+0

精美的作品。感謝您的幫助,關於不對網址進行硬編碼的觀點也很好。 – PlTaylor 2012-01-12 17:47:33

+0

如何添加和id和clas .. – 2014-08-19 14:49:35

1

你必須讓你的行動和controll引用你的形式。

這裏是例子:

@using (Ajax.BeginForm("LogOn","Account", new AjaxOptions { UpdateTargetId = "update_panel", Url = "/Part/SearchPart" }, new { @class ="pull-right"})) 
{ 
    <input type="text" placeholder="Search Parts"/> 
    <input type="submit" value="Search"/> 
}