显示mvc2视图

时间:2014-08-18 11:35:29

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

我在asp mvc2 app中制作控制器。之后我为这个控制器创建视图。

我将此控制器命名为“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

应用程序完美无缺。

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

感谢名单

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

是的,默认情况下应遵循此约定。以下是MSDN的正式确认:

  

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

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