获取分部视图的模型,并在操作链接中使用它

本文关键字:链接 操作 视图 模型 获取 | 更新日期: 2023-09-27 18:14:01

假设我有这样一个视图:

@{
    ViewBag.Title = "Send Items";
}
<h2>Sent Items</h2>
<p>
    @using (Html.BeginForm())
    {
        Html.RenderAction("AdvancedSearchEngine", "PartialViews");
    }
    @Html.ActionLink("Back to Selection", "MenuSelection")
</p>

我想添加一个html ActionLink,这将使我到另一个视图。我想在这个actionlink中获得部分视图中使用的所有模型,以创建将在此视图中显示的项目列表。

@Html.ActionLink("See the results", "DisplayItems", new {_myObject = "blablabla"})

有办法吗?

编辑

我添加了这个方法:

@Html.ActionLink("See the results", "DisplayItems", "DispatchItems", new { model = Model }, null);

但是当方法实际执行时,对象仍然是空的

获取分部视图的模型,并在操作链接中使用它

在控制器中创建一个新操作:

public ActionResult DisplayItems(MyModel model)
{
   // Do stuff
   return View(model);
}

然后在SendItems视图中使用这个actionlink:

Html.ActionLink("See the results", "DisplayItems", "ControllerName", new { model = Model }, null);

我不确定我是否完全理解这个问题,但让我们试试。使用AjaxHelper来做这件事,更有意义,并呈现部分视图。ActionLink必须有一些关于你想要显示的模型的信息,可以是id或其他任何东西。然后,您可以通过单击链接呈现该内容,而无需刷新整个页面。不要忘记在主视图中包含JQuery引用。

<我>

 @{
    ViewBag.Title = "Send Items";
  }
  <h2>Sent Items</h2>
  <p>
  @using (Html.BeginForm())
  {
      Html.RenderAction("AdvancedSearchEngine", "PartialViews");
  }
   @Ajax.ActionLink("Back to Selection", "MenuSelection", new {id = Model.Id}
             new AjaxOptions { HttpMethod ="GET", 
             InsertionMode = InsertionMode.Replace, 
             UpdateTargetId = "results")

 <div id="results"></div>
 public ActionResult DisplayItems(int id)
 {
     // Do stuff
     return PartialView("");
 }

希望这对你有帮助!