我的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
);
答案 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)
当你说“回复空白回复”时,你是说你没有收到错误,但服务器没有返回任何内容?是什么让你认为这是一个路由问题?
一些问题排查提示:
使用Fiddler检查您正在进行的HTTP请求以及服务器发回的原始HTTP响应。如果您收到500响应代码,请检查响应是否有错误信息。
您可以将远程调试器连接到服务器吗?这可能会让您有机会调查所引发的任何异常。