在此之後tutorial我有一個向列表添加行的Ajax調用,它可以正確地將新的部分視圖添加到現有項目列表中。有條件的點擊方法不起作用
@model List<FTD.Models.Rate>
@using (Html.BeginForm("EditRates","Maintenance"))
{
<div id="editorRows">
@foreach (FTD.Models.Rate _rate in Model)
{
Html.RenderPartial("_Rate",_rate);
}
</div>
@Html.ActionLink("Add Another", "BlankEditorRow", null, new { id = "addItem" })
<br />
<input id="Edit" name="submit" type="submit" value="Edit" />
}
<script type="text/javascript">
$("#addItem").click(function() {
$.ajax({
url: this.href,
cache: false,
success: function (html) { $("#editorRows").append(html); }
});
return false;
</script>
我想將列表限制爲5行。我試圖在$ .ajax調用周圍包裝一個if,但是這會導致只顯示該內容,而不是向當前頁面添加一個新的部分,我將其重定向到BlankEditorRow。
$("#addItem").click(function() {
if ($('.editorRow').length < 5) {
$.ajax({
url: this.href,
cache: false,
success: function (html) { $("#editorRows").append(html); }
});
}
return false;
});
控制器動作
public ActionResult BlankEditorRow()
{
if (Request.IsAjaxRequest())
return PartialView("_Rate", new Rate());
return View("_Rate", new Rate());
}
_Rate部分
@model FTD.Models.Rate
<div class="editorRow">
@Html.TextBoxFor(m => Model.Date, new { @class = "date" })
@Html.ValidationMessageFor(m => Model.Date)
@Html.TextBoxFor(m => Model.InterestRate)
@Html.ValidationMessageFor(m => Model.InterestRate)
<a href="#" class="deleteRow">delete</a>
</div>
你是對的,但它不會改變我遇到的問題。當我使用if語句時,我將彈出到BlankEditorRow,沒有它,部分呈現到行列表中。 – Cookie 2012-03-22 12:30:48