asp.net-mvc-3 - 带有附加 HTML 的 MVC3 Html.BeginForm()

标签 asp.net-mvc-3 mvcextensions

我正在编写一些代码,我想在其中呈现 MVC BeginForm,但还要包含其他 HTML。

例如。

@using (Html.BeginMyCustomForm()) {

}

这会吐出来
<form action="" etc>


<input type="hidden" name="my-additional-field-i-always-want">

@Html.ValidationMessageFor(m => m)

这可能吗?
我知道我会考虑某种扩展或最有可能的东西。
希望这是有道理的,并提前致谢!

最佳答案

在 BeginForm 的扩展中包含这些东西并不是一个好主意。原因是好的设计要求对象应该做一件事。这称为单一职责原则。

您现在希望表单对象也创建输入和验证。

相反,使用 MVC 模板系统并创建一个默认模板以满足您的需要。您还应该使用 Html.HiddenFor 而不是使用输入标签,除非有一些特定的理由不这样做。

另一种选择是使用 MVC Scaffolding 来生成你想要的。

更多关于编辑器模板 http://bradwilson.typepad.com/blog/2009/10/aspnet-mvc-2-templates-part-1-introduction.html

更多关于脚手架 http://blog.stevensanderson.com/2011/01/13/scaffold-your-aspnet-mvc-3-project-with-the-mvcscaffolding-package/

关于asp.net-mvc-3 - 带有附加 HTML 的 MVC3 Html.BeginForm(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12612882/

相关文章:

validation - ASP.NET MVC 3 : unobtrusive JavaScript validation

c# - FluentValidation + MVC 扩展(元数据)不能一起工作

javascript - 如何在javascript中创建cookie并在mvc3的 Controller 中使用

c# - 将多个表映射到 Entity Framework 中的单个实体类

asp.net - 在 SQL Azure 中使用 DataContext.CreateDatabase

jquery - MVC3 ajax 将多个复选框值发送到 Controller

asp.net - 为什么 ASP.NET MVC 3 无法正确验证我的 float ?