首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将ASP.MVC模型转换为JS对象并返回到C#

将ASP.MVC模型转换为JS对象并返回到C#
EN

Stack Overflow用户
提问于 2020-02-19 23:47:35
回答 1查看 51关注 0票数 1

我正在尝试用javascript动作调用代替服务器端的动作调用。

我在控制器中有动作

代码语言:javascript
复制
public ActionResult MyTest(TestObj obj)
{
return PartialView("test2");
}

视图中的动作调用现在看起来是这样的:

代码语言:javascript
复制
<div id="TestDiv">
    @Html.Action("MyTest", "Home", new { obj = Model })
</div>

所以我试着用这个js函数来替换它

代码语言:javascript
复制
<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模型吗?

EN

回答 1

Stack Overflow用户

发布于 2020-02-20 01:00:46

试着这样做:

代码语言:javascript
复制
<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>

您需要将整个有效负载串行化,以便可以正确地反序列化它。我还没有试过,所以你可能需要稍微调整一下。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60304163

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档