Asp.Net MVC 3 – どのようにプロジェクトにビューを追加/マップしますか?

私は新しいMVC 3プロジェクトを作成しました。私はプロジェクトを実行し、ホームページをロードしました。私は
“discussion.cshtml”という新しいビューを追加しました。

私は、コントローラのフォルダに1つのコントローラがあります:HomeController

EDIT I misspelled Discussion before but it’s
not misspelled in my project. the problem persists.

the new view is setup in this fashion: View -> Home ->
Discussion.cshtml

このコードをHomeControllerに追加しました

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

Problem: The view did not load when I hit run.
I got the 404 error. The index page loads with this url
“localhost:5553”. But I tried
"localhost:5553/discussion.cshtml" and it can’t find
it. How do I map/route to a view. I’m not sure what’s going on, I
feel like I’m missing something simple.

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);
        }
    }
}
ベストアンサー

View()を返すアクションを使用すると:

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

ASP.NET
MVCエンジンは、コントローラと同じ名前のフォルダ内のアクションと同じ名前のファイルを探します。あなたの場合は、ファイル名のスペルが異なります。また、次のようにすることもできます。

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

これはあなたの現在のファイル名と一致しますが、それは誤植のようですので、ファイルの名前を変更してください。

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です