MVC ActionLink 没有 return PartialView

MVC ActionLink does not return PartialView

我正在尝试通过 PartialView 使用 Ajax 到 return 信息到视图。

控制器有两种方法:

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() 重定向到一个 /Products/Deal URL,页面上只有来自 _deal.cshtml 的数据本身。而不是渲染局部视图并在 id="deal".

的 div 标签中渲染 html

您应该将 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>

你的"Deal"ActionResult可以是PartialViewResult _deal.cshtml 应该放在 View > Shared 文件夹.

你可以这样用

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

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