在Ajax中传递URL的方法有哪些?

时间:2013-02-18 11:54:23

标签: asp.net-mvc-3 load partial-views

我使用Ajax将数据传递给部分视图:

<script type="text/javascript">
    $(function () {

        $('#Request_For_Id').change(function () {
            var mdlno = document.getElementById("Request_For_Id").value;


            $.ajax({
                url: '/Search/MDLNoDataList/',

                type: "POST",
                data: {
                    id: mdlno
                },
                dataType: "html",
                success: function (data) {
                    $("#viewlist").html(data);
                },
                error: function () {
                    alert("No Records Found");
                    //$("#viewlist").html('No Records Found');
                }
            });

        });
    });
</script>

我可以使用Html.RenderPartialHtml.RenderAction等加载部分视图吗?

 url: '/Search/MDLNoDataList/',

还有其他方法吗?

2 个答案:

答案 0 :(得分:0)

url: '/Search/MDLNoDataList/',

还有其他方法吗?是

当您希望解析网址并将其作为相对路径传递时,会使用Url.Content:

url: '@Url.Content("/Search/MDLNoDataList/")',

Url.Action用于解析来自控制器的操作,例如:

url: '@Url.Action("MDLNoDataList", "Search")',

我可以使用Html.RenderPartial或Html吗? RenderAction等加载局部视图?

您可以使用此功能加载部分视图,而不影响整个视图,check this以了解差异

答案 1 :(得分:0)

您可以让控制器操作返回局部视图:

public ActionResult MDLNoDataList(string id)
{
    ...
    return PartialView();
}

然后:

<script type="text/javascript">
    $(function () {
        $('#Request_For_Id').change(function () {
            var mdlno = $(this).val();
            $.ajax({
                // If you are using the WebForms view engine you should use:
                // url: '<%= Url.Action("MDLNoDataList", "Search") %>'
                url: '@Url.Action("MDLNoDataList", "Search")',
                type: 'POST',
                data: {
                    id: mdlno
                },
                success: function (data) {
                    $('#viewlist').html(data);
                },
                error: function () {
                    alert('No Records Found');
                }
            });
        });
    });
</script>