如何在 MVC 的视图中将项目添加到视图模型中的列表 ASP.Net

本文关键字:视图 模型 Net ASP 添加 列表 MVC 项目 | 更新日期: 2023-09-27 17:56:47

我希望有人能在这里指出我正确的方向。我正在尝试添加到表单中的项目列表中。我已经搜索了几天,并尝试了很多变化的事情,我已经忘记了我做过的所有事情。我已尽头。

我尝试过的一些事情:我在这里找到了几个答案,引用了 5 年前的一篇文章,我尝试过但无法开始工作。我尝试使用ajax我尝试使用带有部分视图的 ajax

我希望有人可以帮助我。

我有一个这样的视图模型:

public class CustomerFormViewModel
{
    public Customer Customer { get; set; }
    [Remote("DoesCustomerExist", "Customers", HttpMethod = "POST", ErrorMessage = "There is already a customer by that name. Please enter another name.")]
    public string CustomerName
    {
        get { return Customer.Name; }
        set { Customer.Name = value; }
    }
    public IEnumerable<Key> Keys { get; set; }
    public List<int> KeyIds = new List<int>();
 }

客户模型如下所示:

public class Customer
{
    public int Id { get; set; }
    [Required]
    [StringLength(255)]
    public string Name { get; set; }
    public string Address { get; set; }
    public string Country { get; set; }
    public DateTime DateAdded { get; set; }
}

从本质上讲,在我看来,我想显示一个表单,管理员在其中输入客户详细信息,然后单击"添加密钥"按钮将项目添加到"KeyId"列表中。

我的观点是这样的:

@model LowKey.ViewModels.CustomerFormViewModel
@{
    ViewBag.Title = "CustomerForm";
    Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>@Model.Title</h2>
@using (Html.BeginForm("Save", "Customers"))
{
    <div id="customers">
        <div class="form-group">
                @Html.LabelFor(o => o.Customer.Name)
                @Html.TextBoxFor(o => o.Customer.Name, new {@class = "form-control"})
                @Html.ValidationMessageFor(o => o.Customer.Name, "", new {@class = "text-danger"})
        </div>
   </div>
}

也许我的域模型设置不正确,或者我的视图模型可能不同,但我尝试对 KeyList 使用部分视图,但我似乎无法使其工作。有什么想法吗?

如何在 MVC 的视图中将项目添加到视图模型中的列表 ASP.Net

最适合

您的工作的解决方案是:

  1. 饼干

    使用饼干!因为您可以访问ASP(服务器端)和JavaScript(客户端)的cookie。因此,只需将您的数据添加到 cookie !只需要学习如何在C#和JavaScript中使用cookie,这个链接用于C#,这个链接用于JavaScript。

  2. 使用阿贾克斯您可以使用 jQuery Ajax 将客户信息发送到服务器端(通过 jQuery 和 Ajax),然后将这些信息保存在数据库中(通过 asp.net C#)。此链接用于学习如何使用 jquery ajax 发送信息