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です。

これがcontrollerのメソッドで、リンクが呼び出されたときに呼び出されます

[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 に答える