MVC ActionLink不返回PartialView

时间:2016-08-12 19:34:51

标签: asp.net-mvc asp.net-ajax

我正在尝试使用Ajax通过PartialView将信息返回给视图。

控制器有两种方法:

public ActionResult Deal()
{
    var product = getDeal();
    return PartialView("_deal",product);
}

private product getDeal()
{
    var product = db.Products.OrderByDescending(a => a.Name).First();
    product.Price *= 0.5m;
    return product;
}

此控制器的Index.cshtml包含以下部分:

<div id="deal" class="container">
@Ajax.ActionLink("Click here to see the daily deal!","Deal",
null,
new AjaxOptions
{
    UpdateTargetId = "deal",
    InsertionMode=InsertionMode.Replace,
    HttpMethod="GET"
},
new { @class = "btn btn-primary" }) 

Views文件夹中有一个PartialView _deal.cshtml,但ActionResult Deal()仅使用页面上_deal.cshtml中的数据重定向到/ Products / Deal URL。而不是渲染局部视图并使用id =“deal”在div标签中呈现html。

2 个答案:

答案 0 :(得分:2)

您应该将 Microsoft.jQuery.Unobtrusive.Ajax 的nuget包添加到您的项目中。从程序包管理器控制台

Search and install via NuGet Packages: Microsoft.jQuery.Unobtrusive.Ajax

之后,您需要添加对视图的引用:

@Scripts.Render("~/bundles/jquery")
<script src="~/Scripts/jquery.unobtrusive-ajax.min.js"> </script>

你的&#34;交易&#34; ActionResult 可以是 PartialViewResult _deal.cshtml 应放在 视图&gt;共享 文件夹

答案 1 :(得分:0)

您可以像

一样使用它

将您的价值存储在模型中并传递您的模型。

public ActionResult Deal()
        {
            return PartialView("../_ProductPartial",model)
        }