【发布时间】:2014-08-14 17:27:51
【问题描述】:
我有这个模型视图
public class Ue
{ public class uEkranModel
{
public List<Grup> Grup = new List<Grup>();
private List<Secim> _secim;
public List<Secim> secim
{
get
{
if (_secim == null)
_secim = new List<Secim>();
return _secim;
}
set { _secim = value; }
}
}
public class Secim
{
public Guid uGuid { get; set; }
public Guid fGuid { get; set; }
}
}
我需要使用 JS 删除 List secims 项目并将其发布回控制器。
我尝试过: 1)初始化控制器中的列表: 控制器:
gidecek.Data = new Models.Ucak.UcakDeneme.uEkranModel();
gidecek.Data.secim.Add(new Models.Ue.Secim { uGuid = new Guid() });
gidecek.Data.secim.Add(new Models.Ue.Secim { uGuid = new Guid() });
查看:
@using (Html.BeginForm("deneme", "U", FormMethod.Post, new { id = "secimTamam", style = "display:none" }))
{
@Html.EditorFor(m => m.Data.secim[0])
@Html.TextBoxFor(m => m.Data.secim[0].uGuid, new {id="gidis" })
}
JS:
$("#Data_secim_0__ucusGuid").attr("value", index);
这样,当代码被执行时,textboxfor 的 value 字段被改变(当 JS 被触发时)但是当我检查控制器中的 post 数据时,它是 NULL。
也试过: $("#Data_secim_0__ucusGuid").val(index);
这不会改变文本框的值。
我需要的是用js填充模型值并用js发布表单。(用户选择的数据不同,我只是在表单中发回项目的GUID。)
【问题讨论】:
-
您为什么要尝试为该文本框提供新的 ID?检查浏览器中该文本框的名称属性,如果它与 Data_secim_0__ucusGuid 相同,那么您的模型将绑定在控制器方法
-
也试过了,当我喜欢时,这是输出 html: 但控制器上又是空的
标签: javascript post model asp.net-mvc-5