目前我的view
这就是我所拥有的
<dt>Credit Saldo</dt>
<dd>@Model.CreditSaldo @Html.ActionLink("Add Credit","AddCredit",routeValues:new{Model.LicenseId})</dd>
<br/>
<dd>
<div id="partialDiv"></div>
</dd>
每当用户点击Add Credit
时,目前它会将我转发到新的部分视图(毫不奇怪)。
我想要做的是在同一视图中加载部分视图,在ID为 partialdiv 的div中。
以下是控制器中的方法,即在调用链接时调用
[HttpGet]
public ActionResult AddCredit(Guid licenseid)
{
var newCredit = new AddCredits();
return PartialView(newCredit);
}
这就是我在局部视图中所做的事情
@model AdminPortal.Areas.Customer.Models.ViewModels.AddCredits
<div class="input-small">@Html.EditorFor(m=>m.CreditToAdd) <button class="btn-small" type="submit">Add</button></div>
如果点击链接“添加点数”,如何在同一视图中加载局部视图?
编辑1:尝试过的Ajax
<dt>Credit Saldo</dt>
<dd>@Model.CreditSaldo @Ajax.ActionLink("Add Credit","AddCredit",new{Model.LicenseId}, new AjaxOptions {UpdateTargetId = "partialDiv"})
<br/>
<dd>
<div id="partialDiv"></div>
</dd>
结果:部分视图仍然作为新视图加载(不在同一视图中)
答案 0 :(得分:1)
您可以使用ajax助手
@Ajax.ActionLink("Add Credit","AddCredit",routeValues:new{Model.LicenseId}, new AjaxOptions {UpdateTagetId = "partialDiv"}, new {})
为了使这些工作正常,您需要确保在布局中加载jquery和jquery.unobtrusive-ajax。
当包含jquery时,使用pre 1.9版本或脚本将无法正常工作。如果您需要jquery 1.9+版本,请将nuget中的jquery.migrate包添加到您的项目中,并将其加载到您的布局中。