Я использую одно и то же представление в двух действиях на одном контроллере. Первое представление перезапускает второе, но во втором раунде 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
}));
РЕШЕНИЕ Решение находится на аналогичный вопрос
model
? Это действительно на стороне клиента или вы пытаетесь использовать объектmodel
на стороне сервера? Если последнее, то почему бы не использовать его непосредственно в вызове.Action()
? - person David   schedule 24.06.2014id
? - person Patrick Hofman   schedule 24.06.2014