jquery - 使用 Ajax 的 MVC 部分 View - 未出现在 div 中

标签 jquery ajax asp.net-mvc asp.net-mvc-4

我有一个页面,要求具有按名称搜索功能,然后返回 div 中的部分 View ,其中包含与名称匹配的所有产品。

这是我的 Ajax(自从我测试它以来,详细信息正在被获取并相应地传递给 Controller ​​)​​:

 <script type="text/javascript">
 function SearchName() {
    var names = $('#prodname').val();

    var param = { name: names};

    $.ajax({
        url: '@Url.Action("FilternameM")',
        type: "POST",
        datatype: "html",
        UpdateTargetId: "divResult",
        data: param,
        success: function (data) {
            $('#divResult').empty();
            $('#divResult').html(data);
        }
    });
}
</script>

这是 Controller (方法和变量均已正确处理):

public PartialViewResult FilternameM(string name)
    {
        try
        {
            Product[] products = new ProductService.ProductsServiceClient().SearchProduct(name);
            //List<Product> prod = products.ToList();
            ViewBag.NameList = products;
            return PartialView("_filtername", products);
        }
        catch
        {
            return PartialView("_filtername");
        }
    }

部分 View 如下:

@model Common.Product[]

@foreach (var item in Model)
{
        <div id="item" class="itemStyleProd">  
        <br /> 
                   <img src="@Html.DisplayFor(modelItem => item.ImageLink)" width="100px" height="100px" alt="image" style="border:3px"/>
                  <br />                            
                    @Html.DisplayFor(modelItem => item.Name)    <br />      
                    Retail Price: €@Html.DisplayFor(modelItem => item.Price)<br />
                    Date Listed: @Html.DisplayFor(modelItem => item.DateListed) <br />
                    @Html.ActionLink("Details", "Details", new { id = item.Name })          

        </div>   
}

我调试了该函数,它正在进入 Controller 方法和部分 View 。唯一的问题是局部 View 当时没有显示在 View 中。我认为这与ajax有关!

这是应该显示它的 div:

<div id="divResult"></div>

最佳答案

只需这样做:

$.ajax({
        url: '@Url.Action("FilternameM")',
        type: "POST",
        datatype: "html",
        data: param,
        success: function (data) {
            $('#divResult').empty();
            $('#divResult').html(data);
        }

UpdateTargetId 是 Razor AjaxOptions 类属性,为什么要把它放在 jquery ajax 中。

关于jquery - 使用 Ajax 的 MVC 部分 View - 未出现在 div 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23154147/

相关文章:

jquery - 具有等高边框的等高列的跨浏览器 CSS

javascript - 如何在javascript中获取foreach输入值并将其传递给ajax数据?

jquery - Ajax 调用下载从 RESTful 服务返回的文件

c# - 为特定路由添加授权,无需在mvc中添加属性

c# - 对于 ModelState 无效的项目,不会显示验证消息

javascript - 如何获取数组中与另一个数组不匹配的第一项

javascript - 改变渐变背景颜色,慢速动画

jquery - (浏览器作为客户端)$.ajax 上的 HTTP 405 POST 到 Node 服务

c# - IOC与MVC同一个接口(interface)多次注册

javascript - 每个图像加载后触发函数