如何将模型从一个动作传递到Sitecore MVC中的另一个动作

时间:2016-09-08 18:14:40

标签: sitecore sitecore-mvc

我有一个场景,我正在寻找解决方案。

我有两个与项目A和项目B 相关联的.cshtml页面 abc.cshtml和xyz.cshtml

现在,Page abc有一个文本框和按钮,它使用FormMethod.Post将文本值传递给Action,如下所示。当我请求 域名/ A

时,它会显示

查看

@using (Html.BeginForm("Login", "Account", FormMethod.Post)

{

@Html.TextBoxfor()

}

控制器

public ActionResult About(LoginModel model)

{
   List<Car> result = new List<Car>();

   result = service.GetResult(model.textboxvalue); //Here i am passing textbox value to method which returns list.

   return View();

   // Now i want to display values in result List on xyz.cshtml i.e. on http://domain/B   
   // So how can i pass whole model (which consist of other property as well including list) to another Sitecore Item i.e. Item B
}

要点:

  1. 用户将点击网址域名/ A ,填写文本框并点击按钮。
  2. 后端将填充模型。之后,我想用填充的模型重定向到 domain / B 以显示这些值。
  3. 我已经提到以下链接:

    https://mhwelander.net/2014/05/22/passing-data-between-actions-in-sitecore-mvc/

    表示就像在常规的ASP.NET MVC中一样,你不能在动作之间传递复杂的类型 - 比如完整的模型。并且它似乎是正确的,因为Sitecore MVC执行管道与ASP.NET MVC不同。此外,我已经尝试但没有运气。

    有人可以帮我吗?

2 个答案:

答案 0 :(得分:0)

听起来我觉得你不想把你的模型传递给另一个动作,你想把它还给它以显示在视图上吗?

你能不能只使用你的模特回到你想要的视图?

return View("xyz", model);

答案 1 :(得分:0)

您还可以在表单中添加隐藏字段,并在用户POST表单时填充您的属性:

@using (Html.BeginForm("Login", "Account", FormMethod.Post)
{
     @Html.HiddenFor(m => m.SomeProperty)
     @Html.TextBoxfor()
}