Asp.Net MVC 3 - Как добавить / сопоставить представление для проекта? - PullRequest
0 голосов
/ 13 ноября 2011

Я создал новый проект MVC 3.Я запустил проект, и он загрузил домашнюю страницу.Затем я добавил новый вид, называемый "topic.cshtml".

У меня есть 1 контроллер в папке «Контроллеры»: HomeController

РЕДАКТИРОВАТЬ Я говорил с ошибкой Обсуждение раньше, но в моем проекте это не написано с ошибками.проблема сохраняется.

новый вид настроен следующим образом: View -> Home -> Discussion.cshtml

Я добавил этот код в HomeController

 public ActionResult Discussion()
         {
             return View();
         }

Проблема: Вид не загрузился, когда я нажал run.Я получил ошибку 404.Страница индекса загружается с этим URL "localhost: 5553".Но я попытался "localhost:5553/discussion.cshtml", и он не может его найти.Как мне сопоставить / проложить маршрут до вида.Я не уверен, что происходит, я чувствую, что упускаю что-то простое.

На странице Global.ascx есть обычный код по умолчанию, если это помогает:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;

namespace MvcApplication1
{
    // Note: For instructions on enabling IIS6 or IIS7 classic mode, 
    // visit http://go.microsoft.com/?LinkId=9394801

    public class MvcApplication : System.Web.HttpApplication
    {
        public static void RegisterGlobalFilters(GlobalFilterCollection filters)
        {
            filters.Add(new HandleErrorAttribute());
        }

        public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

            routes.MapRoute(
                "Default", // Route name
                "{controller}/{action}/{id}", // URL with parameters
                new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
            );

        }

        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();

            RegisterGlobalFilters(GlobalFilters.Filters);
            RegisterRoutes(RouteTable.Routes);
        }
    }
}

Ответы [ 3 ]

0 голосов
/ 13 ноября 2011

У вас, похоже, опечатка.Попробуйте переименовать Discsussion.cshtml в Discussion.cshtml

и попробуйте получить к нему доступ http://localhost:5553/home/discussion

0 голосов
/ 13 ноября 2011

С действием, которое просто возвращает View ():

 public ActionResult Discussion()
 {
      return View();
 }

Механизм ASP.NET MVC будет искать файл с тем же именем, что и действие, в папке с тем же именем, что и контроллер,В вашем случае имя файла пишется иначе.Вы также можете сделать:

 public ActionResult Discussion()
 {
      return View("Discsussion");
 }

Это будет соответствовать вашему текущему имени файла, но кажется, что это опечатка, поэтому просто переименуйте ваш файл.

0 голосов
/ 13 ноября 2011

вы не можете делать как localhost: 5553 / Discussion.cshtml "на MVC.

щелкните правой кнопкой мыши на действие обсуждения и выберите Добавить представление.

, если вы просматриваете localhost:5553/Home/Discussion, чтоперенаправит на вид, который вы добавили выше.

...