FubuMvc: если я перемещу свой контроллер и представления в папку, я получаю 404 - PullRequest
1 голос
/ 21 января 2012

Я новичок в FubuMvc и просто играю с ним в небольшом проекте.

У меня есть конфигурация fubu пакета nuget по умолчанию, и я использую механизм просмотра веб-форм:

    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>();
    }

Я создал контроллер и представление в корне моего сайта, вот так: ~ / 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, он работает нормально.

Теперь я хочу переместить свой контроллер в новую папку «Фильмы». Поэтому я перемещаю контроллер и представление и меняю пространство имен на контроллере на MoviesApp.Movies. Когда я перехожу к ~ / Movies / Index, он достигает точки останова в моем IndexController.Index () ActionMethod, но затем отображается 404.

Есть идеи?

1 Ответ

4 голосов
/ 21 января 2012

Я предполагаю, что вы используете движок WebForms, верно? Для разрешения представления WebForms FubuMVC предполагает, что пространство имен представления точно соответствует местоположению представления. Когда вы перемещаете взгляды вокруг этих двух вещей, больше не совпадают. Если у вас установлен R #, просто откройте код и настройте пространство имен - и убедитесь, что пространство имен изменилось и в aspx.

Лучшим советом, вероятно, является переключение на движок Spark View или поддержка Razor в FubuMVC уже в полете.

...