我正在尝试用javascript动作调用代替服务器端的动作调用。
我在控制器中有动作
public ActionResult MyTest(TestObj obj)
{
return PartialView("test2");
}视图中的动作调用现在看起来是这样的:
<div id="TestDiv">
@Html.Action("MyTest", "Home", new { obj = Model })
</div>所以我试着用这个js函数来替换它
<script>
var jsModel =@Html.Raw(Json.Encode(Model)); @*'@serializer.Serialize(Model)';*@
function newHope() {
var url = '@Url.Action("MyTest", "Home")';
$('#TestDiv').load(url, { obj: jsModel });
}
</script>但是,当我通过js发送obj时,所有的obj属性都有缺省值,而从@Html.Action发送时,一切正常
你知道为什么biding不能使用js模型吗?
发布于 2020-02-20 01:00:46
试着这样做:
<script>
var jsModel =@Html.Raw(Json.Encode(Model)); @*'@serializer.Serialize(Model)';*@
function newHope() {
var url = '@Url.Action("MyTest", "Home")';
$('#TestDiv').load(url, '{ obj: ' +jsModel +'}');
}
</script>您需要将整个有效负载串行化,以便可以正确地反序列化它。我还没有试过,所以你可能需要稍微调整一下。
https://stackoverflow.com/questions/60304163
复制相似问题