我的UI有一个文本框和一个按钮,每次我添加一个新元素,我需要在同一个视图中显示列表。我使用局部视图,因此每次向列表中添加新元素时都需要继续加载此局部视图。如何修改我的代码才能实现呢?
查看
@Html.TextBoxFor(m => m.emailsAdded, new { @class = "form-control wide", placeholder = "Email ID", type = "email", Name = "txtEmail" }
<button id="thisButton">Add</button>
<div id="content"></div>
<script>
$(document).ready(function() {
$("#thisButton").on("click", function () {
var val = $('#emailsAdded').val();
$.ajax({
url: "/Admin/UpdateEmailList?email="+val,
type: "GET"
})
.done(function(partialViewResult) {
$("#content").html(partialViewResult);
});
});
});
</script>
模型
public class ABC
{
public IEnumerable<string> emailsAdded { get; set; }
}
控制器
[HttpGet]
public ActionResult UpdateEmailList(string email)
{
if (Session["emails"] == null)
{
List<string> aux1 = new List<string>();
aux1.Add(email);
Session["emails"] = aux1;
}
else
{
List<string> aux2 = new List<string>();
aux2 = (List<string>)Session["emails"];
aux2.Add(email);
Session["emails"] = aux2;
}
var abc = new ABC
{
emailsAdded = (List<string>)Session["emails"]
};
return PartialView("_EmailsListPartialView", abc);
}
部分视图
@using project.Models
@model project.Models.ABC
<table class="tblEmails">
@foreach (var emails in Model.emailsAdded)
{
<tr><td>@emails.ToString()</td></tr>
}
</table>
使用我的代码我能够重新加载我的div并添加新元素,当第二次没有工作时....我怎样才能修改我的代码以便我可以继续添加内容?
解: 我更新了控制器以显示我是如何解决此问题的。不确定这是否是最佳方式,但至少帮助我解决了。 我在会话[&#34;电子邮件&#34;]中存储电子邮件列表,每次我向列表添加新电子邮件时,我只需将其更新为传递给包含所有记录的新列表,最后返回局部视图。