这是根据我的问题:
How to pass array created from jQuery to controller method?
这是我的控制器返回局部视图:
public ActionResult PartialViewChild(int id)
{
//stmts /*model is assigned here */
return PartialView("ChildPartialView", model);
}
我现在的问题是,我的控制器操作返回的视图不会被$.ajax()
调用呈现。我已经在成功函数中放了一个调试器,它从来没有打到那里。所以,偶然的,我在ajax调用中添加了一个错误函数,如
var id=currentSelected.Id;
$.ajax({
url: "@(Url.Action("PartialViewChild", "ControllerChild")",
type: "POST",
data: JSON.stringify({id : id}),
cache: false,
success: function (result) {
$("#id1").html(result);
},
error: function (data, errorThrown) {
alert('request failed :' + errorThrown);
}});
我还发现,id为“id1”的div必须为空才能正确呈现局部视图。但是,开头的div会呈现一个像EmptyView一样的
<div id="id1">
@{Html.RenderPartial("ChildPartialView", new ChildPartialModel());}
</div>
并且基于ajax调用,我想用返回的结果填充该div(现在所有的属性都有值)。 但是,不幸的是,在这里我只是从ajax调用中得到错误警告:()告诉我有一个“解析错误”。
有人可以告诉我怎样才能纠正它?
修改
这是我的部分视图:
@model Models.ChildColumnsModel
<div>
<span>@Html.LabelFor(c => c.Phone_Number):</span>
<span>@Html.TextBoxFor(c=> c.Phone_Number)</span>
</div>
// like this it has all its attributes...
并在我的控制器中:
public PartialViewResult PartialViewChild(int id)
{
var model=child.GetReletedInfo(id); /*proper results are returned here which is of ChildColumnsModel type */
return PartialView("ChildPartialView", model);
}
答案 0 :(得分:0)
编辑:
试试这个:
[HttpPost]
public ActionResult ChildPartialView(int id)
{
//stmts /*model is assigned here */
return PartialView(model);
}
答案 1 :(得分:0)
抱歉所有......我解决了这个问题。我有一个额外的属性为ajax告诉它的dataType:“Json”......当我删除它时,一切都很精细..我自己多么愚蠢..?!!谢谢大家的有价值的答案和时间朋友..