MVC链接到视图

时间:2016-01-20 08:32:41

标签: asp.net-mvc views

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),则找不到???

这对我来说是缺乏了解但在哪里?

提前感谢任何指针

1 个答案:

答案 0 :(得分:1)

尝试使用RedirectToAction这会将用户导航到给定控制器中特定操作的视图。

if(actionSuccess)
{
    return RedirectToAction("Index", "Home");
}

更新:

确保你有一个HttpGet的控制器

[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult AccountHome()
{
    return View();
}

public ActionResult AccountHome()
{
    return View();
}

由于你将[HttpPost]添加到控制器,它将是在“AccountHome”上发布帖子后执行的那个