我使用 MVC5 生成带有一些自定义字段的模型。我有一个字段“区域”,每个人都可以根据他的区域添加一条记录。 在我的 View 中我添加了:
<div class="form-horizontal">
<h4>Employee</h4>
<hr />
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
<div class="form-group">
@Html.LabelFor(model => model.Region, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@if (User.IsInRole("RiyadhAdminAssistant"))
{
@:Riyadh
}
@if (User.IsInRole("JeddahAdminAssistant"))
{
@:JEDDAH
}
@if (User.IsInRole("AlAhsaAdminAssistant"))
{
@*<text><b>AlAhsa</b></text>*@
@:AlAhsa
}
</div>
</div>
所有事情对我来说都很好,但是区域的值没有存储在数据库中!怎么才能保存呢。 请提供任何帮助
提前致谢。
最佳答案
由于您有一个表单,因此您需要将值附加到表单元素,该元素可以发布到您的服务器。您需要指定一个名称,以便您可以访问 Controller 中的值并将其保存在数据库中:
<div class="col-md-10">
@if (User.IsInRole("RiyadhAdminAssistant"))
{
<input type="hidden" name="role" value="Riyadh" />
@:Riyadh
}
@if (User.IsInRole("JeddahAdminAssistant"))
{
<input type="hidden" name="role" value="JEDDAH" />
@:JEDDAH
}
@if (User.IsInRole("AlAhsaAdminAssistant"))
{
<input type="hidden" name="role" value="AlAhsa" />
@*<text><b>AlAhsa</b></text>*@
@:AlAhsa
}
</div>
在 Controller 中与表单关联的操作中,您可以访问 role
参数(您可以将其命名为任何您想要的名称):
public ActionResult MyAction(string role)
{
//store "role" in the database
}
编辑:正如评论中已经指出的,您已经知道用户的 Angular 色,因此您不需要呈现额外的 HTML。相反,只需在将数据保存到数据库之前检查服务器上的 Angular 色即可。这个答案是一个概念证明,不应该在数据已知且浏览器不需要它的特定情况下使用。
关于javascript - 如何在 MVC 5 中保存自定义值字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27417499/