簡體   English   中英

使用Ajax的MVC部分視圖-未出現在div中

[英]MVC Partial View with Ajax - Not appearing in div

我有一個頁面,要求具有按名稱搜索功能,然后在div中返回一個部分視圖,其中包含與該名稱匹配的所有產品。

這是我的Ajax(自從我測試了細節以來,就將細節並相應地傳遞給控制器​​)​​:

 <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>

這是控制器(方法和變量都已正確處理):

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");
        }
    }

局部視圖如下:

@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>   
}

我調試了該函數,它同時進入了控制器方法和部分視圖。 唯一的問題是,那時局部視圖沒有顯示在視圖中。 我認為這與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中。

將方法“ POST”的類型更改為“ Get”,並嘗試希望對您有所幫助

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

該編碼實際上是正確的。 我只是忘記更新我的div名稱,所以它不匹配!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM