我在同一个控制器上的两个动作中使用相同的视图。
第一个视图重新启动第二个视图,但在第二轮中,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
}));
解 解决方案是一个类似的问题