在MVC中将值从Controller传递给View

时间:2015-09-29 15:25:05

标签: c# asp.net-mvc-4 model-view-controller view controller

我有一个使用数据脚手架生成的视图。视图有一个文本字段:

创建视图:

plist file

我想将控制器中的值传递给此文本字段。我做了以下,但似乎没有效果。

控制器:

     <div class="form-group">
        @Html.LabelFor(model => model.GroupId, htmlAttributes: new { @class = "control-label col-md-2" })
        <div class="col-md-10">
            @Html.EditorFor(model => model.GroupId, new { htmlAttributes = new { @class = "form-control" } })
            @Html.ValidationMessageFor(model => model.GroupId, "", new { @class = "text-danger" })
        </div>
    </div>

2 个答案:

答案 0 :(得分:4)

您可以使用ViewBag存储GroupId来实现此目的,但由于您的视图使用的是模型,因此最好采用这种方式。

所以你会:

<强>型号:

public class GroupModel
{
    public int GroupId { get; set; }
}

<强>控制器:

public ActionResult Create(int id)
{
    var model = new GroupModel();
    model.GroupId = id

    return View(model);
}

在视图的顶部,您将引用您的模型:

@model GroupModel

然后,您可以根据脚手架使用model.GroupId之类的代码访问视图中的模型。

答案 1 :(得分:0)

要指出的另一件事是,如果要传递存储在web.config文件中的键值,例如reCAPTCHA,并且验证失败,那么您还需要在HttpPost部分中设置键值