ASP.NET MVC 2一条路由工作,一条路线不工作

时间:2010-02-09 15:27:23

标签: asp.net-mvc ajax json

我的ASP.NET MVC应用程序中有两条路由。

第一个工作正常 - 它是一个返回视图的ActionResult。

第二个是在同一个控制器上,是一个返回Json响应的ActionResult。这需要几个额外的参数。

这第二条路径正在我的开发机器上工作,但是当我将它部署到服务器时,我得到一个空白的响应。我们将非常感激地收到任何建议。

我还将路由复制粘贴到浏览器中,以消除jQuery JavaScript中的任何问题。

方法

    [HttpGet]
    public ActionResult CheckSku(string id, string brand)
    {
        CheckSkuModel model = new CheckSkuModel();

        model.Id = id;
        model.Brand = brand;

        return Json(model, JsonRequestBehavior.AllowGet);
    }

路线

  routes.MapRoute(
            "Default",                                              // Route name
            "{controller}.mvc/{action}/{id}",                           // URL with parameters
            new { controller = "Orders", action = "Send", id = "" }  // Parameter defaults
        );

        routes.MapRoute(
            "CheckSku",                                              // Route name
            "{controller}.mvc/{action}/{id}/{brand}",                           // URL with parameters
            new { controller = "Orders", action = "CheckSku", id = "", brand = "" }  // Parameter defaults
        );

2 个答案:

答案 0 :(得分:1)

你可以快速检查两件事可能会有所帮助: 1.交换两条路线,使“CheckSku”高于“默认” 2.使“CheckSku”更具体,所以看起来像:

routes.MapRoute(
        "CheckSku",                                              // Route name
        "Orders.mvc/CheckSku/{id}/{brand}",                           // URL with parameters
        new { controller = "Orders", action = "CheckSku", id = "", brand = "" }  // Parameter defaults
    );

这是另一个控制器没有错误地拿起网址。

另一种方法是在生成url时使用routelink助手,使其指向正确的路径。

答案 1 :(得分:0)

当你说“回复空白回复”时,你是说你没有收到错误,但服务器没有返回任何内容?是什么让你认为这是一个路由问题?

一些问题排查提示:

  1. 使用Fiddler检查您正在进行的HTTP请求以及服务器发回的原始HTTP响应。如果您收到500响应代码,请检查响应是否有错误信息。

  2. 您可以将远程调试器连接到服务器吗?这可能会让您有机会调查所引发的任何异常。