在 MVC 中将值从控制器传递到视图

Gis*_*ota 2 c# model-view-controller controller view asp.net-mvc-4

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

创建视图:

     <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>
Run Code Online (Sandbox Code Playgroud)

我想将一个值从控制器传递到此文本字段。我做了以下,这似乎不起作用。

控制器:

    public ActionResult Create(int id)
    {
        ViewBag.GroupId = id;
        Debug.WriteLine("DEBUG: "+id);
        return View();
    }
Run Code Online (Sandbox Code Playgroud)

Stu*_*art 6

您可以按照当前的方式使用ViewBagto store来完成此操作GroupId,但由于您的视图正在使用模型,因此最好采用这种方式。

所以你会:

模型:

public class GroupModel
{
    public int GroupId { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

控制器:

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

    return View(model);
}
Run Code Online (Sandbox Code Playgroud)

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

@model GroupModel
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用代码访问视图中的模型,就像model.GroupId脚手架所做的那样。