Url.Action无法按预期工作

时间:2014-06-24 09:55:08

标签: .net asp.net-mvc json.net razor-2

我在同一个控制器上的两个动作中使用相同的视图。 第一个视图重新启动第二个视图,但在第二轮中,URL.Action会自动插入url参数

这是代码:

 function doRedirect() {
        debugger;
        var data = { };
        data.Modules = dict;
        data.Pages = dictPage;
        $.ajax({
            type: "POST",
            url: '@Url.Action("ReorderModules")' + '/' + model.PhaseDocumentId,
            contentType: "application/json; charset=utf-8",
            data:  JSON.stringify(data) ,
            dataType: "json",
            async:
        false,
            success:

        function(msg) {
            ////debugger;
            window.location.href = '@Url.Action("UpdateModelView")' + '/' + model.PhaseDocumentId;
        }
        });
    }

在第一步@Url.Action("UpdateModelView")是正确的第二步,值是正确的路径+ Id在第一步传递,所以我有一个错误,因为我连接两次相同的id

有什么想法吗?

UPDATE  这是控制器代码:

public ActionResult UpdateModelView(Guid id)
    {
        var model = srvDispatcher.PhaseDocumentService.GetPhaseDocumentById(id.ToString());
       .....
        ViewBag.ModelNoHtml = model;
        return View("CreatePhase2", model);
    }

客户端代码第一次是:

function doRedirect() {
        debugger;
        var data = { };
        data.Modules = dict;
        data.Pages = dictPage;
        $.ajax({
            type: "POST",
            url: '/PhaseDocuments/ReorderModules' + '/' + model.PhaseDocumentId,
            contentType: "application/json; charset=utf-8",
            data:  JSON.stringify(data) ,
            dataType: "json",
            async:
        false,
            success:

        function(msg) {
            ////debugger;
            window.location.href = '/PhaseDocuments/UpdateModelView' + '/' + model.PhaseDocumentId;
        }
        });

第二次客户端代码是:

function doRedirect() {
        debugger;
        var data = { };
        data.Modules = dict;
        data.Pages = dictPage;
        $.ajax({
            type: "POST",
            url: '/PhaseDocuments/ReorderModules' + '/' + model.PhaseDocumentId,
            contentType: "application/json; charset=utf-8",
            data:  JSON.stringify(data) ,
            dataType: "json",
            async:
        false,
            success:

        function(msg) {
            ////debugger;
            window.location.href = '/PhaseDocuments/UpdateModelView/60cfe283-dcd6-47db-9f85-3cf662cd5ccf' + '/' + model.PhaseDocumentId;
        }
        });

model var是我的控制器模型的Json版本

var model = @Html.Raw(JsonConvert.SerializeObject(modelNoHTML, Formatting.Indented,
                    new JsonSerializerSettings()
                    {
                        ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore
                    }));

解 解决方案是一个类似的问题

SOLUTION

0 个答案:

没有答案
相关问题