C# 在asp.net mvc中从视图重定向到其他视图

C# 在asp.net mvc中从视图重定向到其他视图,c#,asp.net,asp.net-mvc-4,C#,Asp.net,Asp.net Mvc 4,我在通过控件操作将数据从一个视图传输到另一个视图时遇到问题。 I第一个视图为grid.mvc-grid显示。通过在网格的行上选择,我获得该对象的ID。 通过将其传输到控制器中的操作,我尝试过滤数据。那很好 以下是过滤器: [HttpGet] public ActionResult PersonenById(int id) { var personen = new ObservableCollection<Person>(); //Getting the data he

我在通过控件操作将数据从一个视图传输到另一个视图时遇到问题。 I第一个视图为grid.mvc-grid显示。通过在网格的行上选择,我获得该对象的ID。 通过将其传输到控制器中的操作,我尝试过滤数据。那很好

以下是过滤器:

[HttpGet]
public ActionResult PersonenById(int id)
{
    var personen = new ObservableCollection<Person>();
    //Getting the data here :-)

    foreach (DataRow r in access.Rows)
    {
        Person p = new Person();
        //do some stuff 
        personen.Add(p);
    }

    //return PartialView("Personen", personen); //does not work
    TempData["personen"] = personen;
    return RedirectToAction("Personen"); // redirect to another view
}
在方法II中,填充视图:

public ActionResult Personen()
{
    var persons = new ObservableCollection<Person>();
    if (TempData["Persons"] == null)
    {

     }
  return View(persons); //Works perfect
}   
else
{
    persons = (ObservableCollection<Person>) TempData["Persons"];
    return View(persons);//does not redirect to that View
}
}


很抱歉,格式有点奇怪-

从一个视图向另一个视图发送数据有什么不同的方法吗? 我试过: 返回部分; 返回观看者、观看者; 还有很多其他东西。

应该是这样工作的:

return RedirectToAction("Personen", model);
public ActionResult Personen(Person model) ...
此外,Personen操作应将模型作为参数,如下所示:

return RedirectToAction("Personen", model);
public ActionResult Personen(Person model) ...
LE:我还注意到您试图通过TempData对象发送数据。确保索引对象的名称相同,例如,TempData[person]无处不在


希望它能回答您的问题。

您可以在.cshtml视图中重定向

例如:


对于奇怪的格式设置很抱歉-不要道歉,只需正确设置格式即可,因为代码几乎不可读。您的行尾不正确。已格式化的部分代码块有太多大括号,因此不确定应该是什么代码。还有TempData[个人]!=TempData[personen]感谢您的提示,但TempData[person]只是由复制粘贴引起的错误。当我为targetview设置断点时,将在视图中到达断点。但是视图没有显示。您是说.cshtml还是.aspx视图?如果是,您必须指定相同的ObservableCollection模型。您好,Andrei。是的,它是一个.cshtml视图。ObservableCollection与imo相同。否则视图中的网格将无法获得任何数据,或者?不会发生的是重定向到浏览器中的不同视图。视图未显示。无法使用有效负载执行重定向。重定向会导致客户端浏览器对新URL发出GET请求。因此,您只能通过查询字符串传递数据,因为GET方法只支持查询字符串。虽然您可以尝试将类分解为查询字符串参数,但这会很麻烦。如果您需要使用同一个对象,最好只传递带有新URL的id,然后用它再次查找。