我使用MVC5生成带有一些自定义字段的模型。我有一个字段Region每个人都可以根据他的Region添加记录。 在我的视图中,我添加了:
<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>
所有东西对我来说都很好但是Region的值没有存储在DataBase中!怎么能救它。 请帮助
提前致谢。
答案 0 :(得分:2)
由于您有表单,因此需要将值附加到表单元素,该表单元素可以发布到您的服务器。您需要指定一个名称,以便可以访问控制器中的值并将其保存在数据库中:
<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>
在您的控制器中,在与表单关联的操作中,您可以访问role
参数(您可以根据需要为其命名):
public ActionResult MyAction(string role)
{
//store "role" in the database
}
编辑:正如评论中已经指出的那样,您已经了解了用户的角色,因此您不需要呈现其他HTML。相反,在将数据保存到数据库之前,只需检查服务器上的角色。这个答案是概念证明,当数据已知且浏览器不需要时,不应在特定情况下使用。
答案 1 :(得分:1)
您好,您可以将其保存在数据库中,您必须将其存储在表单中,并有一个提交按钮来触发保存。
model NameSpaceForYourModel
<form action="@Url.Action("SaveAction","RegionController")" method="post" 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"))
{
@Html.TextboxFor(m=>m.Riyadh)
}
@if (User.IsInRole("JeddahAdminAssistant"))
{
@Html.TextboxFor(m=>m.Jeddah)
}
@if (User.IsInRole("AlAhsaAdminAssistant"))
{
@*<text><b>AlAhsa</b></text>*@
@Html.TextboxFor(m=>m.Alahsa)
}
</div>
<input type="submit" value="Save">
</form>
&#13;