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

创建视图:

     <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>


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

控制器:

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

最佳答案

您可以通过使用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这样的代码在视图中访问模型。

关于c# - 在MVC中将值从Controller传递到View,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32847940/

10-12 13:39