我希望有人能指出我正确的方向。我想添加到表单中的项目列表。我已经搜索了几天,并尝试了很多不同的东西,我已经忘记了我所做的所有事情。我的智慧结束了。
我尝试过的一些事情: 我在这里引用了几个答案,引用了5年前的一篇文章,我试过但是无法开始工作。 我尝试使用ajax 我尝试使用带部分视图的ajax
我希望有人能帮助我。
我有一个像这样的ViewModel:
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>();
}
Customer模型如下所示:
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; }
}
基本上,在我看来,我想显示一个表单,其中管理员输入客户详细信息,然后单击“添加密钥”按钮将项目添加到“KeyIds”列表中。
我的观点是这样的:
@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>
}
也许我的域模型没有正确设置,或者我的viewmodel可能不同,但我尝试使用KeyList的部分视图,但我似乎无法让它工作。 有什么想法吗?
答案 0 :(得分:0)
您工作的最佳解决方案是:
曲奇
使用Cookies! 因为你有访问cookie形式ASP(服务器端)和JavaScript(客户端)。 所以只需将您的数据添加到cookie!只需要了解如何在c#和javascript中使用Cookie,c#的此链接以及javascript的此链接。
使用Ajax 你可以使用jquery ajax将你的客户信息发送到服务器端(通过jquery和ajax)然后你将这些信息保存在数据库中(通过asp.net c#)。此链接用于了解如何使用jquery ajax