我想在MVC3中使用帮助器来提交按钮。有这样的东西吗?如果没有,那么有谁知道我可以在哪里得到一些代码。我想要一个允许我传递类属性的。
答案 0 :(得分:17)
写
并不简单 <input type="submit" class="myclassname"/>
在MVC中,没有类似控件的东西,它们带有很多应用程序逻辑。事实上,这是可能的,但不推荐。我想说的是,Html助手只是让Html写得更舒服,并帮助你不要编写重复的代码。在您的特定情况下,我认为编写直接html比使用帮助程序更简单。但无论如何,如果你愿意,它都包含在MVC Futures Library中。方法称为SubmitButton
答案 1 :(得分:10)
只需使用以下代码添加到项目类中:
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" })
答案 2 :(得分:3)
chk这个链接它告诉你如何创建自定义帮助方法,并且没有内置的提交帮助器......
http://stephenwalther.com/blog/archive/2009/03/03/chapter-6-understanding-html-helpers.aspx
它还包括一个非常基本的提交帮助方法,希望它有帮助
答案 3 :(得分:2)
没有按钮的HTML帮助器,因为HTML帮助器反映了模型的属性,并通过为绑定目的设置正确的属性来帮助您,他们还会查看该属性的VilidationAttribute元数据(如果有)并添加任何jQuery验证属性。
按钮不是模型的一部分,因此没有任何助手。
您可以按照本文http://www.asp.net/mvc/overview/older-versions-1/views/creating-custom-html-helpers-cs或使用TagBuilder类:http://www.asp.net/mvc/overview/older-versions-1/views/using-the-tagbuilder-class-to-build-html-helpers-cs创建自己的HTML帮助器,但我更愿意返回HTMLString而不是字符串
答案 4 :(得分:0)
没有一个,但不应该阻止你自己建立一个。
即使MVC期货项目似乎没有前进或支持,下载源并不难,并抓住提交按钮帮助程序(以及它的支持代码)来推送自己的。
这正是我们为大型MVC 4项目创建SubmitButton帮助程序的基础。
答案 5 :(得分: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调用中你只需添加该参数 - 它不会破坏任何东西 - 如果你需要为该按钮添加一个类 - 添加它 - 在一个地方而不是搜索所有的电话。
希望有所帮助 - 它对我来说非常好用!