Url.Action не работает должным образом

Я использую одно и то же представление в двух действиях на одном контроллере. Первое представление перезапускает второе, но во втором раунде 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") правильно на втором шаге значение - правильный путь + идентификатор, переданный на первом шаге, поэтому у меня есть ошибка, потому что я дважды объединяю один и тот же идентификатор

Любые идеи?

ОБНОВЛЕНИЕ это код контроллера:

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

модель var - это Json-версия моей модели контроллера.

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

РЕШЕНИЕ Решение находится на аналогичный вопрос

РЕШЕНИЕ


person RDM    schedule 24.06.2014    source источник
comment
Как выглядит клиентский код после рендеринга страницы? Что такое model? Это действительно на стороне клиента или вы пытаетесь использовать объект model на стороне сервера? Если последнее, то почему бы не использовать его непосредственно в вызове .Action()?   -  person David    schedule 24.06.2014
comment
У вас есть маршрут со значением по умолчанию id?   -  person Patrick Hofman    schedule 24.06.2014
comment
Нет Патрика, но я нашел решение   -  person RDM    schedule 24.06.2014
comment
Затем добавьте его в качестве ответа для дальнейшего использования.   -  person Patrick Hofman    schedule 24.06.2014
comment
Я не могу добавить ответы, потому что я низкий профиль   -  person RDM    schedule 24.06.2014
comment
Не относитесь к себе так негативно ;). Вы можете ответить от 1 представителя, поэтому я думаю, что вы могли бы сами ответить на свой вопрос.   -  person Patrick Hofman    schedule 25.06.2014