【发布时间】:2018-05-14 09:44:08
【问题描述】:
我正在学习 Asp MVC。 我已经从事 WPF MVVM 程序两年了,但据我所知,我还需要学习 ASP,这是我所在国家/地区 Web 开发中使用的通用语言。而且我也有 c# 方面的知识,所以我认为调整不会很困难,但我在使我的网站正常工作方面已经面临很多问题。我尝试阅读有关 ASP 和 MVC 的内容,但我通过做事和从错误中学习而不是阅读它。所以我决定试一试。
我使用 Visual Studio Community Edition 2017 创建了一个 EMPTY MVC 项目
我已经创建了布局页面和第一个控制器和第一个视图,它完全可以正常工作。
这是截图
然后我创建第二个控制器。那么问题就来了。
我像这样为它创建了一个名为 NewPostController 和 ADD View 的新控制器
但它会创建另一个以视图名称命名的文件夹,其中包含它创建的视图
我不希望它以这种方式组织。
所以我将NewPost.cshtml 拖到管理文件夹中。运行应用程序然后我收到一个错误提示
The resource cannot be found.
Requested URL: /Admin/NewPost
我搜索了一个解决方案,但我无法解决问题
我尝试指定视图名称
public ActionResult NewPost()
{
return View("~/Admin/NewPost");
}
我阅读的大多数解决方案都是指定视图名称。但我不能让它工作。我错过了什么?还是不明白?谢谢。
【问题讨论】:
-
只需像这样使用视图名称:
return View("NewPost");。无需使用cshtml文件的完整路径。 -
为什么要改变 MVC 的自然架构?如果您希望
NewPost操作位于Admin控制器文件夹中,则只需将您的操作从NewPostController移动到AdminController -
如果您想为视图使用非标准位置,我建议您实现 custom Razor view engine
-
您需要移动 both 方法和视图文件(
public ActionResult NewPost()需要在AdminController中,NewPost.cshtml文件需要在 @987654341 中@ -
@classname13 你应该在
AdminController中移动NewPost方法以获取/Admin/NewPostURL。NewPostController将创建/NewPost/NewPost。
标签: c# asp.net-mvc razor model-view-controller