C# MVC-发送表单后找不到视图
在我的(mvc)应用程序中有以下结构 -视图C# MVC-发送表单后找不到视图,c#,asp.net-mvc,razor,C#,Asp.net Mvc,Razor,在我的(mvc)应用程序中有以下结构 -视图 --主页 ---Index.cshtml --用户 ---Change.cshtml 我用的是这样的表格 @using (Html.BeginForm("Change", "User", new { id = 2 })) { // Code ... } [HttpPost] public ActionResult Change(FormCollection collection) { //logic.... return View
--主页
---Index.cshtml --用户
---Change.cshtml 我用的是这样的表格
@using (Html.BeginForm("Change", "User", new { id = 2 }))
{
// Code ...
}
[HttpPost]
public ActionResult Change(FormCollection collection)
{
//logic....
return View("Index", "Home");
}
如果所有文本字段都已填写,您可以单击提交按钮。在后台,将执行操作,并将用户带回Home/Index.cshtml页面
我返回“视图”的代码如下所示
@using (Html.BeginForm("Change", "User", new { id = 2 }))
{
// Code ...
}
[HttpPost]
public ActionResult Change(FormCollection collection)
{
//logic....
return View("Index", "Home");
}
问题从这里开始。我无法切换回主页/索引。我得到一个错误,它说,无法找到视图。它尝试在视图/用户中查找索引,但不在主视图中。有什么原因吗?您在用户控制器中,因此当您执行以下操作时:
return View("Index", "Home");
MVC将在用户
文件夹中查找索引
页面。指定Home
并不是告诉它查看Home
控制器。该参数是为模型保留的
我不建议从一个控制器路由到另一个控制器,但是您可以使用
RedirectToAction
,允许您在您的情况下指定操作名称和控制器:
return RedirectToAction("Change", "Home");
我懂了。谢谢你的提示。我还没想过“重定向到动作”。尽管如此,我还是感兴趣的是,在您看来,为什么应该避免控制器之间的路由?我可以将我的应用程序组织、拆分为几个部分,并可以更好地维护它(imo)。