也许标题不是那么清楚。
想象一下,我在剃刀视图中有两列。
其中一列显示以下列表。
@for (int i = 0; i < questions.Length; i++) {
<tr>
<td><span>@i</span>.</td>
<td class="questionText">@Html.ActionLink(questions[i].QuestionText, "AddItemToAssignmentContent", new { itemId = "Q" + questions[i].Id })
</tr>
}
如您所见,每个人都有一个网址。
然后,第二列被称为SelectedItems
,这是当你在第一列的链接中clic时,将该项添加到第二列。
我想用Ajax做到这一点,但直到现在我还不知道如何用它来实现。
这是行动。
public ActionResult AddItemToAssignmentContent(string itemId)
{
var list = Session["SelectedItems"] as List<CreateAssignmentSelectedItem>;
CreateAssignmentSelectedItem item = new CreateAssignmentSelectedItem();
item.Id = itemId;
item.Display = itemId;
item.Quantity = 5;
list.Add(item);
return PartialView("_SelectedAssignmentContent", list);
}
我缺少什么,或者我应该怎么做才能使用AJAX将项目添加到第二列?
答案 0 :(得分:0)
这样做的一种方法是定义一个javascript函数,该函数将在执行链接的click事件时被调用。该函数将通过ajax将请求异步发送到控制器操作,获取结果(部分视图)并填充div
模拟功能
function addQuestionToList(questionId){
var linkToControllerAction = ‘@Url.Content(….)’
$.ajax({
url: linkToControllerAction,
type: ‘post’,
data: { ‘itemId’: questionId }
}).done(function(partialViewResult){
$(‘#divHostingThePartialView’).html(partialViewResult);
});
}
并将此函数挂钩到每个tr的click事件,该事件会更改问题的名称,替换您的操作链接