我是FubuMvc的新手,我只是在一个小项目上玩它。
我有默认的nuget包fubu配置,我正在使用Web表单视图引擎:
public ConfigureFubuMVC()
{
// This line turns on the basic diagnostics and request tracing
IncludeDiagnostics(true);
// All public methods from concrete classes ending in "Controller"
// in this assembly are assumed to be action methods
Actions.IncludeClassesSuffixedWithController();
// Policies
Routes
.IgnoreControllerNamesEntirely().IgnoreControllerFolderName()
.IgnoreMethodSuffix("Html")
.RootAtAssemblyNamespace();
// Match views to action methods by matching
// on model type, view name, and namespace
Views.TryToAttachWithDefaultConventions();
// View Engine
this.Import<WebFormsEngine>();
}
我在我的网站root中创建了一个控制器和一个视图,如下所示: 〜/ IndexController.cs
namespace MovieApp
{
public class IndexController
{
private MoviesDBEntities _db = new MoviesDBEntities();
public MovieIndexViewModel Index()
{
return new MovieIndexViewModel { Movies = _db.Movies.ToList() };
}
public class MovieIndexViewModel
{
public IEnumerable<Movie> Movies { get; set; }
}
}
}
以及随之而来的视图: 〜/的Index.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Index.aspx.cs" MasterPageFile="/Site.Master" Inherits="MovieApp.Index" %>
...
当我浏览〜/ Index时,它可以正常工作。
现在我想将我的控制器移动到一个新文件夹“Movies”。所以我移动控制器和视图,并将控制器上的命名空间更改为MoviesApp.Movies。 当我导航到〜/ Movies / Index时,它会在我的IndexController.Index()ActionMethod中遇到一个断点,但是会显示一个404。
有什么想法吗?
答案 0 :(得分:4)
我假设您正在使用WebForms引擎,对吧?对于WebForms视图解析,FubuMVC假设视图的命名空间与视图位置完全匹配。当你移动视图时,这两个东西不再匹配。如果您已经安装了R#,只需打开后面的代码并调整命名空间 - 并确保命名空间也在aspx上更改。
更好的建议可能是切换到Spark视图引擎或FubuMVC中的Razor支持已经在飞行中。