更新 我最終只使用會話變量將值傳遞給Ajax.BeginForm塊。這是我不想用一個黑客,但我就是無法找到另一種方式......Ajax.BeginForm更新For循環中的唯一div ID
原貼 我使用一個for循環,在循環中一個唯一的ID給每個評論的div像:
<div id="[email protected](feedModel.PostID)"></div>
EX:
註釋1
註釋2
COMM ent3
這些div的每個人都有一個輸入的Ajax.BeginForm提交按鈕。我想設置UpdateTargetId AjaxOption,但我不能,因爲每個ID都是唯一的。所以UpdateTargetId =「div」將不起作用。我不能傳入模型或TempData,因爲這是Ajax.BeginForm。那麼如何傳入feedModel.PostID?
代碼:
@foreach (Website.Models.FeedModel feedModel in Model)
{
<span id="[email protected](feedModel.PostID)" style="margin-top:5px; display:block;
font-weight:bold"><a href="#" onclick="loadPartialView(@feedModel.PostID);
return false;">Comments(@feedModel.Replies)</a></span>
<div id="[email protected](feedModel.PostID)"></div>
}
的JavaScript被稱爲:
function loadPartialView(context) {
method HomeController._Comments
$('#comments' + context).load('Home/_Comments/' + context);
}
內部的PartialView
@if (Request.IsAuthenticated)
{
<div class="childpost">
@using (Ajax.BeginForm("SubmitChildPost", "Home", new AjaxOptions { UpdateTargetId =
"[email protected]['feedModelID'].ToString()" }, new { id =
@TempData["feedModelID"].ToString() }))
{
@Html.TextArea("MessageBox", "", 2, 50, null)
<br />
<p>
@Html.AntiForgeryToken()
<input type="submit" value="Reply" class="replybutton" />
</p>
}
</div>
}
哪些職位的行動。字符串ID爲空,因爲你不能將模型值或溫度數據的Ajax.BeginForm所以我不知道該怎麼辦......
[ValidateAntiForgeryToken]
public ActionResult SubmitChildPost(FormCollection formValue, string id)
{
string message = formValue["MessageBox"].ToString();
if (message != "")
{
MessageRepository.UpdatePostReply(Convert.ToInt32(id));
MessageRepository.SaveChildPost(message, id, User.Identity.Name);
}
return RedirectToAction("_Comments", "Home", new { ID = id});
}
僅供參考,以供將來參考,把一個連字符在@前面的作品「評論 - @(feedModel.PostID)」。一直運行這個。 –