是否有一个内置函数基本上从模型中获取一个对象参数并基于它创建一个完整的表单?
目前我正在为每个属性做一行:
@model AutomatedTellerMachine.Models.ContactFormModel
@using (Html.BeginForm())
{
<div class="form-horizontal">
<div class="form-group">
<div class="col-md-10">
<input type="text" name="name" class="form-control" />
@Html.ValidationMessageFor(model => model.name, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
<div class="col-md-10">
<input type="text" name="phone" class="form-control" />
@Html.ValidationMessageFor(model => model.phone, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
<div class="col-md-10">
<textarea name="message" class="form-control"></textarea>
@Html.ValidationMessageFor(model => model.message, "", new { @class = "text-danger"})
</div>
</div>
<div class="form-group">
<div class="col-md-10">
<input type="submit" value="Send" class="btn btn-default"/>
</div>
</div>
</div>
}
我意识到你可以让 Visual Studio 为你创建一切,但我需要混合搭配。
最佳答案
您可以使用编辑器模板执行此操作。创建一个名为 ContactFormModel.cshtml
的新 Razor View (名称必须与型号匹配)。在该文件中,复制现有 View 中的所有代码。
您可以使用普通的 Razor 语法来呈现您在调用 EditorFor()
时想要包含的任何 HTML。在这个模型上。
然后,您可以使用 Razor 渲染您的自定义模板:
@Html.EditorForModel(Model)
如果您想对模型中的特定对象(例如,
YourObjectName
)而不是整个对象执行相同操作,请创建一个名为 YourObjectName.cshtml
的文件。 .在此文件的顶部:
@model NameSpace.YourObjectName
然后在要在其中呈现自定义编辑器模板的外部 View 中使用它:
@Html.EditorFor(model => model.YourObjectPropertyName)
关于c# - 如何从 ASP.NET MVC 5 中的模型创建表单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28842771/