ASP.NET MVC 2的一个线工程,其中一个路线不 [英] ASP.NET MVC 2 One Route Works, One Route Doesn't

查看:142
本文介绍了ASP.NET MVC 2的一个线工程,其中一个路线不的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有两条路线在我的ASP.NET MVC应用程序。

首先是工作的罚款 - 这是一个返回视图一个ActionResult

二是同一个控制器上,并返回一个JSON响应一个ActionResult。这需要一些额外的PARAMATERS。

这第二条路线是我的工作dev的机器,但是当我把它部署到服务器我得到一个空白的响应。任何建议将受到欢迎。

我也复制粘贴的路线到浏览器,以消除了jQuery JavaScript的任何问题。

该方法

  [HTTPGET]
    公众的ActionResult CheckSku(串号,串品牌)
    {
        CheckSkuModel模式=新CheckSkuModel();        model.Id = ID;
        model.Brand =品牌;        返回JSON(型号,JsonRequestBehavior.AllowGet);
    }

的路由

  routes.MapRoute(
            默认,//路线名称
            {}控制器.mvc / {}动作/(编号),// URL带参数
            新{控制器=订单,行动=发送,ID =} //参数默认
        );        routes.MapRoute(
            CheckSku,//路线名称
            {}控制器.mvc / {行动} / {ID} / {}品牌,// URL带参数
            新{控制器=订单,行动=CheckSkuID =,品牌=} //参数默认
        );


解决方案

两件事你可以快速检查,可以帮助:
1.交换这两条路周围如此CheckSku上面的是默认
2.在CheckSku更加具体,以便看起来像:

  routes.MapRoute(
        CheckSku,//路线名称
        Orders.mvc / CheckSku / {ID} / {}品牌,//带参数的URL
        新{控制器=订单,行动=CheckSkuID =,品牌=} //参数默认
    );

这是另一个控制器不误拿起网址。

另一种方法是使用生成URL时,使其指向正确路线的routelink帮手。

I have two routes in my ASP.NET MVC application.

The first is working fine - it's an ActionResult that returns a view.

The second is on the same controller and is an ActionResult that returns a Json response. It takes a couple of additional paramaters.

This second route is working on my dev machine, but when I deploy it to the server I get back a blank response. Any suggestions will be gratefully received.

I have also copy-pasted the route into a browser to eliminate any issues in the jQuery JavaScript.

The method

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

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

        return Json(model, JsonRequestBehavior.AllowGet);
    }

The routes

  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
        );

解决方案

Two thing you can quickly check that may help: 1. Swap the two routes around so "CheckSku" is above "default" 2. Make the "CheckSku" more specific so will look something like:

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

that was another controller doesn't pick up the url by mistake.

An alternative is the use the routelink helper when generating the url so it points to the correct route.

这篇关于ASP.NET MVC 2的一个线工程,其中一个路线不的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆