0

CodesControllerがあり、Index アクションは次のようになります。

public ActionResult Index(int id, string manufacturerName)

URL をhttp://www.domain.com/codes/[id]/[manufacturerName]のようにしたいのですが、現在使用しているコードではhttp://www.domain.com/のようになります。コード/[id]?manufacturerName=[メーカー名]

<script type="text/javascript">
    $(function() {
        $('#btnNext').click(function () {
            var _id = $('#ddlManufacturers').val();
            var _manufacturerName = $('#ddlManufacturers').text();
            var url = '@Url.Action("Index", "Codes", new { id = "_id", manufacturerName = "_manufacturerName" })'
            .replace('_id', _id).replace('_manufacturerName', _manufacturerName.toLowerCase().trim());
            window.location.href = url;
        });
    });

これは私が現在行っている方法であり、適切に行う方法がわからないため、URLは希望どおりになります。コード

4

2 に答える 2

1

私の理解によれば、次のようなルートを追加する必要があります

routes.MapRoute(
    name: "CodesRoute",
    url: "{controller}/{action}/{id}/{manufacturerName}",
    new { controller = "Codes",  action = "Index",
        manufacturerName = UrlParameter.Optional 
    }
);

その後、Html.RouteLinkまたはを使用できますUrl.RouteUrl

使っているとJavaScript Url.RouteUrlが便利になります

var url = '@Url.RouteUrl("CodesRoute", new { id = "_id", manufacturerName = "_manufacturerName" })'
于 2013-10-02T19:22:23.063 に答える
0

新しいルートが必要になります:

routes.MapRoute(
    name: null,
    url: "{controller}/{action}/{id}/{manufacturerName}",
    defaults: new { 
        controller = "Home", 
        action = "Index", 
        id = UrlParameter.Optional, 
        manufacturerName = UrlParameter.Optional 
    }
);
于 2013-10-02T19:20:23.650 に答える