【问题标题】:Passing a string (besides the model) into a partial view in MVC4将字符串(模型除外)传递到 MVC4 中的局部视图中
【发布时间】:2013-08-08 17:11:47
【问题描述】:

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

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

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

这可能吗?

【问题讨论】:

  • 不能使用 ViewBag 吗?从控制器或视图中设置一个值并在部分视图中访问它。还没有检查自己。
  • 可能重复 stackoverflow.com/questions/7177153/…。如果您尝试的操作存在特定问题,请分享有关您所面临问题的错误或更多数据。有很多帖子描述了如何正常实现。

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


【解决方案1】:

如果你想发送一些不在模型或视图中的数据,你应该使用类似下面的东西:

1) 使用 @Html.Action("ActionName", "Controller", routeValues: new { id = Model.Id }) 助手而不是 @Html.Partial()

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>

【讨论】:

    猜你喜欢
    • 2013-02-03
    • 1970-01-01
    • 2015-04-20
    • 2019-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-06
    相关资源
    最近更新 更多