如何为隐藏字段设置默认值?

时间:2018-10-18 16:31:59

标签: c# html asp.net-mvc razor frameworks

im在一个项目中工作,该项目创建两种类型的用户:admin和member。为了区分它们,我设置了一个 bool 值, true => admin || false =>成员

只有管理员可以创建管理员,如果匿名用户尝试创建帐户,则该字段的默认值需要为 false 。我在该字段中设置了 @ html.HiddenFor ,但是它发送的是空值,因此无法将模型保存在数据库中。

这是代码:

[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Registro(
        [Bind(Include="Id,Login,Pass,Nombre,Apellido,Rol")]Usuario objUser)
{
    //somecode

    var errors = ModelState.Values.SelectMany(v => v.Errors);
    //error shows the null 'rol' parameter
    if (ModelState.IsValid)
    {
        db.Usuario.Add(objUser);
        db.SaveChanges();
        return RedirectToAction("Login");
    }

    return View(objUser);
}

剃刀:

@using (Html.BeginForm())
{
    @Html.AntiForgeryToken()
    @Html.HiddenFor(model => model.Rol)

    //some inputs for the other fields
}

未找到与此相关的信息 有可能还是我需要做其他事情?

1 个答案:

答案 0 :(得分:1)

我建议您使用这种简单的方法:

您可以使用Viewbag来做到这一点。

在控制器中:

viewbag.Test="This is a test";

在视图中:

  <input type="hidden" id="Test" name="Test" value="@Viewbag.Test">