我有一個ASP.Net MVC頁面,我想用AJAX更新用戶在窗體上編輯/查看父表的子表。我確定這是一個非常標準的模式,但是因爲我是平臺新手。MVC3中的Ajax.ActionLink看起來和HTML一樣.ActionLink
在我的網頁我具備以下條件:
<ul id="see_also_list">
<!-- this part is in a partial -->
@if (0 < Model.RelatedCategories.Count)
{
foreach (string cat in Model.RelatedCategories.Keys)
{
<li>@Html.ActionLink(cat, "Details", new { id = Model.RelatedCategories[cat] })
[@Ajax.ActionLink("remove", "RemoveSeeAlso", new { id=Model.Id, RelatedCategory = Model.RelatedCategories[cat] }, new AjaxOptions{ Confirm = "This will remove this item", HttpMethod = "POST", UpdateTargetId = "see_also_list" })]</li>
}
}
else
{
<li>No related Categories listed.</li>
}
<!-- end of partial -->
</ul>
@using (Ajax.BeginForm("AddSeeAlso", new AjaxOptions { UpdateTargetId = "see_also_list", InsertionMode = InsertionMode.Replace }))
{
@Html.HiddenFor(model => model.Id)
@Html.DropDownList("alsoCategories", Model.LoadCategoryDropdown())
<input type="submit" value="Add" />
}
我是,無論是阿賈克斯形式和Ajax.ActionLink出現在相同的方式HTML.ActionLink要表現的問題 - 他們正在導航瀏覽器直接在表單上進行操作。當啓用「確認」AjaxOption的鏈接時,它不顯示任何種類的確認框。我想我錯過了一些重要的管道工程,或者內置的幫助程序方法沒有我希望的那樣幫助,我需要手動添加一些額外的JavaScript。
由Ajax.ActionLink創建的HTML看起來像這樣:
<ul id="see_also_list">
<li><a href="/Category/Details/2">Advice and Information </a>
[<a data-ajax="true" data-ajax-confirm="This will remove this item" data-ajax-method="POST" data-ajax-mode="replace" data-ajax-update="#see_also_list" href="/Category/RemoveSeeAlso/1?RelatedCategory=2">remove</a>]</li>
</ul>
我包括 「jquery.validate.min.js」, 「jquery.validate.unobtrusive.min.js」,「MicrosoftAjax .debug.js「和」MicrosoftMVCAjax.debug.js「。
完美,這正是問題所在。 – glenatron 2012-02-27 10:33:49