2011-05-20 38 views

回答

17

是不是很簡單只是寫

<input type="submit" class="myclassname"/>

在MVC ,沒有像控件這樣的東西,它們帶有許多應用程序邏輯。事實上,這是可能的,但不推薦。我想說的是,Html助手只是使Html寫作更舒適,並幫助你不寫重複的代碼。在你的特定情況下,我認爲編寫直接html比使用helper更簡單。但無論如何,如果你想,它包含在MVC Futures Library。方法被稱爲SubmitButton

0

沒有一個,但不應該阻止你自己建立一個。

儘管MVC期貨項目似乎根本沒有前進或支持,但下載源代碼並抓取提交按鈕助手(以及它的支持代碼)來推出自己的代碼並不難。

這正是我們爲大型MVC 4項目創建SubmitButton幫助器的基礎。

2

按鈕沒有HTML幫助程序,因爲HTML幫助程序會反映模型的propertys並通過爲綁定目的設置正確的屬性來幫助您,它們還會查看該屬性的VilidationAttribute元數據(如果有)以及添加任何jQuery驗證屬性。

按鈕不是模型的一部分,所以沒有任何助手。

你可以箱子按照本文http://www.asp.net/mvc/overview/older-versions-1/views/creating-custom-html-helpers-cs或使用TagBuilder類自己的HTML幫助:http://www.asp.net/mvc/overview/older-versions-1/views/using-the-tagbuilder-class-to-build-html-helpers-cs但我更願意返回HTMLString不是字符串

5

只需添加到您的項目類這樣的代碼:

using System.Text; 

namespace System.Web.Mvc 
{ 
public static class CustomHtmlHelper 
{ 
    public static MvcHtmlString SubmitButton(this HtmlHelper helper, string buttonText, object htmlAttributes = null) 
    { 
     StringBuilder html = new StringBuilder(); 
     html.AppendFormat("<input type = 'submit' value = '{0}' ", buttonText); 
     //{ class = btn btn-default, id = create-button } 
     var attributes = helper.AttributeEncode(htmlAttributes); 
     if (!string.IsNullOrEmpty(attributes)) 
     { 
      attributes = attributes.Trim('{', '}'); 
      var attrValuePairs = attributes.Split(','); 
      foreach (var attrValuePair in attrValuePairs) 
      { 
       var equalIndex = attrValuePair.IndexOf('='); 
       var attrValue = attrValuePair.Split('='); 
       html.AppendFormat("{0}='{1}' ", attrValuePair.Substring(0, equalIndex).Trim(), attrValuePair.Substring(equalIndex + 1).Trim()); 
      } 
     } 
     html.Append("/>"); 
     return new MvcHtmlString(html.ToString()); 
    } 
} 
} 

和使用例如:

@Html.SubmitButton("Save", new { @class= "btn btn-default", id="create-button" }) 
+1

應該是被接受的答案 – SlapY 2017-03-14 12:26:51

0

這裏是我做到了。

談到HTML 5 <button>屬性的

創建PartialView - 這樣稱呼它_HTML5Button。vbhtml

@ModelType YourProjectName.ButtonViewModel 

<button onclick="location.href = '@Model.URL'" class="btn btn-info">@Model.ButtonText</button> 

,並創建一個ButtonViewModel

Public Class ButtonViewModel 

Public URL As String 
Public ButtonText As String = "Modify Button Text" 
'You can add more parameters or do as you please 

End Class 

然後,你需要創建,如果你想在以後添加更多的參數,它叫你偏喜歡這個

@Html.Partial("~/Views/Shared/MiniPartialViews/_HTML5Button.vbhtml", New ButtonViewModel With {.URL = "http://www.goanywhere.com", .ButtonText = "Name That Will Appear On The Button"}) 

這樣 - 它都是在那個集中爲你的一個局部視圖 - 可以說你想稍後添加一個ID

好吧,你去部分,添加一個id =「@ Model.Id」,然後在你的PartialView調用中,你只需添加該參數 - 它不會破壞任何東西 - 如果你需要添加一個類到該按鈕 - 添加它 - 在一個地方而不是搜索所有的電話。

希望有幫助 - 它對我來說超級好!

相關問題