1

目前在我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 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; @Ajax.ActionLink("Add Credit","AddCredit",new{Model.LicenseId}, new AjaxOptions {UpdateTargetId = "partialDiv"})
            <br/>
            <dd>
               <div id="partialDiv"></div>
            </dd>

结果:部分视图仍作为新视图加载(不在同一视图中)

4

1 回答 1

1

您可以为此使用 ajax 助手

@Ajax.ActionLink("Add Credit","AddCredit",routeValues:new{Model.LicenseId}, new AjaxOptions {UpdateTagetId = "partialDiv"}, new {})

为了使这些工作,您需要确保在布局中加载 jquery 和 jquery.unobtrusive-ajax。

包含 jquery 时,请使用 1.9 之前的版本,否则脚本将不起作用。如果您需要 jquery 1.9+ 的版本,请将 jquery.migrate 包从 nuget 添加到您的项目中,并将其加载到您的布局中。

于 2013-08-14T09:33:01.560 回答