MVC的新手,所以学习(以一种沮丧的方式,因为找到过去需要花费5分钟的简单事物变得过于复杂)
所以我在VS2015中设置了一个解决方案,该解决方案附带了先决条件帐户部分。
我还在数据库中设置表并从中构建实体(生成一些CRUD
)
所以我可以登录并进入我的AccountHome视图(return View("AccountHome")
中的AccountController
)
在我的AccountHome
页面中,我可以使用单独的控制器导航到另一个视图(@Html.ActionLink("Add Foods", "Create", "fad_userFoods", new { id = ViewBag.userID }, new { @class = "btn btn-default" })
)
这里我做了一些表单输入,数据已成功添加到数据库中,但这就是我的问题所在。输入数据后,我想返回AccountHome
视图
所以在我的fad_userFoodsControler
我有这个代码
(return RedirectToAction("AccountHome","Account")
)
- 说资源无法找到!!!
在我的AccountController
我有以下代码:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult AccountHome()
{
return View();
}
在我AccountViewModels
我有这段代码:
public class AccountHomeViewModel
{
public string Email { get; set; }
}
最后,在我的AccountHome.cshtml
页面中,我将其声明在顶部(@model FiveADayMVC2.Models.AccountHomeViewModel
)
我哪里错了?看了很多帖子,他们都是这样做的。我知道该视图存在,因为我可以从登录中获取它。然而,如果我手动输入网址(即我的网址后跟/Account/AccountHome
),则找不到???
这对我来说是缺乏了解但在哪里?
提前感谢任何指针
答案 0 :(得分:1)
尝试使用RedirectToAction这会将用户导航到给定控制器中特定操作的视图。
if(actionSuccess)
{
return RedirectToAction("Index", "Home");
}
更新:
确保你有一个HttpGet的控制器
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult AccountHome()
{
return View();
}
public ActionResult AccountHome()
{
return View();
}
由于你将[HttpPost]添加到控制器,它将是在“AccountHome”上发布帖子后执行的那个