将MVC3应用程序重定位到子文件夹 - 如何路由操作

时间:2012-07-09 05:26:11

标签: .net asp.net-mvc-3

我正在尝试将MVC3应用程序部署到IIS6环境中,并将其部署到现有2.0站点的子文件夹中。我遇到的问题是,现在我已经将应用程序重新定位到子文件夹,没有任何操作能够命中控制器。控制器名称为SurveyController,子目录名称为Survey。

这是出问题的地方

$.ajax({
    url: '@Url.Action("AddSurvey")',
    type: 'GET',
    async: false,
    contentType: 'application/json',
    success: function (result) {

        ko.applyBindings(new ViewModel(result));
    }
});

现在我已经进入子文件夹,我需要做些什么才能确保控制器操作正确路由?

目前已注册的路线是

RouteTable.Routes.MapRoute("", "", new { controller = "Survey", action = "Index" });

编辑:

经过几次测试。我能够浏览到一个创建一个简单的hello字符串的控制器。但是,只要我引入EF DBContext,它就会抛出一个错误

“IControllerFactory'UI.Infrastructure.NinjectControllerFactory'未返回名称为”MyTest“的控制器。”

    public ActionResult MyTest()
    {
        ContentResult cr = new ContentResult();
        cr.Content = "hello";
        return cr;
    }

但不是

    public ActionResult MyTest()
    {
        RolloverModel ctx = new RolloverModel("name=MyModel");
        cr.Content = ctx.Connection.ConnectionString;
        return cr;
    }

提前致谢!

2 个答案:

答案 0 :(得分:0)

您现有的网站是否在4.0框架下运行?如果不是请切换到4.0框架。您可以找到更多详细信息here

答案 1 :(得分:0)

我不知道你做了什么重新分配,但是你所展示的AJAX示例不可能正常工作,因为你正在使用模型绑定器不支持的contentType: 'application/json'的GET动词。