2016-07-20 44 views
0

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

// 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

注意:我使用ASP.NET 1.0的核心和VS2015在Windows 7

+1

只需尝试返回View()和View(“Index”)。我猜测完整路径搞砸了 – Steve

+0

我明白了。问题在于[RedirectToAction(...)](https://msdn.microsoft.com/en-us/library/system.web.mvc.controller.redirecttoaction(v = vs.118).aspx )方法没有任何视图路径的输入参数。相反,我只需要提供操作名称,如:return RedirectToAction(“Index”);' – nam

+0

@Steve您是对的。请参阅我的评论和MSDN链接。 – nam

回答

0

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

相关问题