返回视图不会拾取新视图

问题描述:

我想改变我的控制器指向的视图,但是这不是拾取修改。以下是我尝试使用的代码;返回视图不会拾取新视图

// GET: UserDemographics/Create 
public ActionResult Create() 
{ 
    return View("Manage"); 
} 

而我的观点的文件夹看起来象下面这样:

enter image description here

我的理解是,View尝试以检查同名的方法,但我可能是错的。任何帮助,将不胜感激。

+1

控制器的名称是什么?它是'UserDemographics'吗?如果没有,应该是 - 或者重命名文件夹名称以匹配包含您的'Manage.cshtml'视图的控制器。 – Luke

+1

代码中没有错误。这应该是完美的 –

+0

请你让我知道你为什么标记了一个没有包含你的答案的问题作为正确的答案。这不会帮助任何人在将来查看这个问题。 – Luke

做出请求时View()方法中指定不改变在URL中的路径的视图名,它简单地改变所呈现的请求的结果的视图的名称。

如果您希望您的操作路径为/UserDemographics/Manage,则需要将Action方法的名称更改为Manage

public class UserDemographics : Controller 
{ 
    // Requested by /UserDemographics/Manage in the browser 
    public ActionResult Manage() 
    { 
     // You don't HAVE to specify the view name here, Manage.cshtml will be rendered based on the convention. 
     // However as mentioned this is best practice to specify the name. 
     return View("Manage"); 
    } 
} 

这使得不再需要指定视图名称,因为它将根据该控制器的约定从视图文件夹中自动选择。

+1

这是[最佳实践(https://blogs.msdn.microsoft.com/aspnetue/2010/09/17/best-practices-for-asp-net-mvc/)明确命名的操作方法的意见。 –

给视图的路径

return View("~/Views/UserDemographics/Manage.cshtml"); 
+4

这会起作用,但您不需要指定完整路径,因为它是基于约定的。 – Luke

+0

是的在这种情况下,取决于控制器名@luke – Tushar

+0

Unfortuntely这仍然给出了404错误,'请求的URL:/ UserDemographics/Manage' – Tom

没有错在你的代码。这应该很好地工作

你的URL应该是这样的,

localhost:[Port Number]/userdemographics/Create 

如果你已经托管你的项目在真实的域名,那么你就可以用你的域名替换localhost:[Port Number]。例如,

www.example.com/userdemographics/Create