ASP.NET MVC应用程序正在Controller文件夹中搜索视图

时间:2016-07-20 19:27:09

标签: razor visual-studio-2015 asp.net-core

我在Controller文件夹中有一个BlogPostController控制器,其中包含以下操作方法。当您单击Create中的<a asp-controller="BlogPost" asp-action="Create" asp-route-id="@item.BlogId">Create</a>链接时,它正确调用Get方法,并在Create.cshtml页面上插入新值后,它将在SQL DB中创建一条记录。但之后,它会将链接重定向到不存在的http://localhost:59616/BlogPost/~BlogPost/Index.cshtml。似乎应用程序假设Views文件夹位于Controller / PostBlog文件夹中,并尝试将路径~/Views/BlogPost/Index.cshtml附加到它。但是Controller文件夹下没有BlogPost文件夹,如下所示。这可能有什么问题?:

// GET: BlogPost/Create
public IActionResult Create()
{
     return View("~/Views/BlogPost/Create.cshtml");
}

// POST: BlogPost/Create.
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Create([Bind("BlogId,Url")] Blog blog)
{
    if (ModelState.IsValid)
{
     _context.Add(blog);
     await _context.SaveChangesAsync();
     return RedirectToAction("~/Views/BlogPost/Index.cshtml");
}
     return View("~/Views/BlogPost/Create.cshtml", blog);
}

项目文件夹结构

enter image description here

注意:我在Windows 7上使用ASP.NET Core 1.0和VS2015

1 个答案:

答案 0 :(得分:0)

我明白了。问题是RedirectToAction(...)方法没有视图路径的任何输入参数。相反,我只需要提供动作名称,例如:return RedirectToAction(&#34; Index&#34;);