.NET多次使用局部视图

时间:2016-10-28 20:07:09

标签: c# .net asp.net-mvc-4

我的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;]中存储电子邮件列表,每次我向列表添加新电子邮件时,我只需将其更新为传递给包含所有记录的新列表,最后返回局部视图。

0 个答案:

没有答案
相关问题