【问题标题】:Displaying mvc2 view显示 mvc2 视图
【发布时间】:2014-08-18 11:35:28
【问题描述】:

我在 asp mvc2 应用程序中制作控制器。之后我为这个控制器创建视图。

我将此控制器命名为“DisplayName” 并写出类似的东西:

public class DisplayName : Controller
{
    //
    // GET: /DisplayName/

    public ActionResult Index()
    {
        return View();
    }
    public ActionResult DisplaySomething()
    {
        MojaKlasa objCustomer = new MojaKlasa();
        objCustomer.ime = "Random ime";
        objCustomer.broj = 10;

        return View("DisplaySomething", objCustomer);
    }
}

但是当我尝试在网络浏览器中显示并调用时:

http://localhost:xxxxx/DisplayName/DisplaySomething

我得到错误:

Server Error in '/' Application. The resource cannot be found.

我试图找出错误,然后我在 DisplayNameController 中看到一个示例并重命名控制器

现在我有:

public class DisplayNameController : Controller
{
    //
    // GET: /DisplayName/

    public ActionResult Index()
    {
        return View();
    }
    public ActionResult DisplaySomething()
    {
        MojaKlasa objCustomer = new MojaKlasa();
        objCustomer.ime = "Random ime";
        objCustomer.broj = 10;

        return View("DisplaySomething", objCustomer);
    }
}

现在当我打电话时:

http://localhost:xxxxx/DisplayName/DisplaySomething

应用完美运行。

我的问题是下一个:这是否意味着每个控制器的名称都需要有“控制器”?为什么我不能只使用我想要的名称?

感谢

【问题讨论】:

    标签: c# asp.net asp.net-mvc-2


    【解决方案1】:

    是的,默认情况下应遵循此约定。这是来自MSDN的一些正式确认:

    所有控制器类必须使用“控制器”后缀命名。

    但是,如果您真的愿意,您可以重新定义此命名约定。为此,您必须创建自己的 ControllerFactory 类,该类负责控制器实例化。这方面的例子可以在here找到。

    【讨论】:

      【解决方案2】:

      是的,MVC 中的默认路由使用基于约定的路由,命名约定是在控制器名称后加上“控制器”。

      【讨论】:

        猜你喜欢
        • 2011-06-04
        • 1970-01-01
        • 2011-09-16
        • 1970-01-01
        • 2011-03-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-06-16
        相关资源
        最近更新 更多