将字符串(模型除外)传递到MVC4中的局部视图中

时间:2013-08-07 21:24:52

标签: asp.net-mvc-4 partial-views

如何将字符串发送到部分视图?

我想要的是将有关正在查看的模型的信息发送到局部视图。像这样:

@{Html.RenderPartial("_PhaseCreate", new Phase(), @Model.Id );}

这可能吗?

1 个答案:

答案 0 :(得分:2)

如果您想发送一些不在模型或视图中的数据,您应该使用以下内容:

1)使用@Html.Partial()帮助程序代替@Html.Action("ActionName", "Controller", routeValues: new { id = Model.Id })

2)将类似内容添加到控制器中:

public ActionResult GetMyView(int id)
{
    ViewBag.Phase = new Phase();
    ViewBag.Id = id;
    // also whatever which doesn't in model ...

    return View("_PhaseCreate");
}

在您的部分视图中,您可以像宣布它们一样使用这些信息:

<label>@ViewBag.Id</label>

如果您只需要添加模型和视图中的数据,也可以使用以下内容:

@Html.Partial("_PhaseCreate", 
              new ViewDataDictionary(new { Phase = new Phase(), Id = Model.Id }))

并像这样使用它们:

<label>@ViewData["Id"].ToString()</label>