找不到视图或其主页

时间:2015-11-26 13:39:13

标签: razor asp.net-mvc-5

在下面的链接中,我正在尝试访问标记为“商家”的链接,而我标记为“关注者”的链接工作正常。他们都访问相同的控制器并查看标有“商家”的那个不起作用。这里很困惑。

     <p class="lead">Register a @Html.ActionLink("Merchant", "Register", "Account", new { role = "Merchant" }, null) or Register as a @Html.ActionLink("Follower", "Register", "Account")</p>

我前几天做了一个改变,试图通过“角色”,这似乎已经打破了它。我确实更改了帐户控制器中的Register方法以反映这些更改。

    public ActionResult Register(string role)
    {
        var model = new RegisterViewModel
          {
              Name = role
          };
     return View("Register", role);
    }

我还添加了另一个路由配置以适应这种变化:

    routes.MapRoute(
name: "Register",
url: "Account/Register/{role}",
defaults: new { controller = "Account", action = "Register" }
    );

已经有一段时间了,并尝试了其他类似的例子,但这个问题似乎是我无法看到的其他问题。

PAths我收到错误,是的,文件夹确实存在于帐户中:

    ~/Views/Account/register.aspx
    ~/Views/Account/register.ascx
    ~/Views/Shared/register.aspx
    ~/Views/Shared/register.ascx
    ~/Views/Account/Merchant.master
    ~/Views/Shared/Merchant.master
    ~/Views/Account/Merchant.cshtml
    ~/Views/Account/Merchant.vbhtml
    ~/Views/Shared/Merchant.cshtml
    ~/Views/Shared/Merchant.vbhtml

2 个答案:

答案 0 :(得分:0)

看起来我的Register方法有误,需要添加一个对象参数。

StaysOpenOnClick="True"

答案 1 :(得分:0)

由于您的Action方法名称和View名称相同,因此您无需明确提及View名称,您可以将创建的模型传递给View,如下所示:

public ActionResult Register(string role)
{
    var model = new RegisterViewModel
      {
          Name = role
      };

    return View(model);
 }