1

我正在尝试将 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;
    }

提前致谢!

4

2 回答 2

0

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

于 2012-07-09T05:33:50.733 回答
0

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

于 2012-07-09T06:21:45.330 回答