使用$.ajax获取部分视图

5
我正在使用ASP.NET MVC 3构建一个应用程序,但是当我尝试获取部分视图时遇到了问题;以下是我的代码:
视图:
@{while (Model.Read())
{
    <ul class="tabs">
        <li id="general" class="active">Informations générals</li>
        <li id="contact">Contacts</li>
    </ul>

    <div id="contentDetail">
        <div><b>Description :</b> @Model["Description"]</div>
        <div><b>Activity :</b> @Model["Activity"]</div>
    </div>

    <script type="text/javascript">

        $("#contact").click(function () {
            $.ajax({
                url: '@Url.Content("~/Company/Contacts/")',
                type: 'get',
                data: JSON.stringify('@Model["Id"]'),
                datatype: 'json',
                contentType: 'application/json; charset=utf-8',
                success: function (data) {
                    $('#contentDetail').replaceWith(data);
                    },
                error: function (request, status, err) {
                    alert(status);
                    alert(err);
                    }
            });
        });
    </script>
}

这段文字翻译为:

控制器:

public ActionResult Contacts(int id)
    {
        return PartialView("_Contacts", getContactDetails(id));
    }

"_Contacts"是我的部分视图,它是强类型的。
主页我清楚了,谢谢 ^^

“问题”是什么?您是否监控了HTTP请求和响应,以查看您正在发送和接收的数据?您知道HTTP响应代码是什么吗?您是否检查了服务器上的错误日志,以查看您的问题是否出在那里? - Justin Helgerson
2个回答

4
以下是错误的内容:
data: JSON.stringify('@Model["Id"]')

将其替换为真正的JSON对象:

data: JSON.stringify(@(Html.Raw(Json.Encode(new { id = Model["Id"] }))))

或者使用:
data: JSON.stringify({ id: "@Model["Id"]" })

当在最终的标记语言中呈现时,它将看起来像这样:
data: JSON.stringify({ id: "123" })

非常感谢,它有效 ^^ data: JSON.stringify({ id: '@Model["Id"]' }) - SidAhmed

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接