我有这个模型 View
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 项目并将其发布回 Controller 。
我尝试过: 1)初始化 Controller 中的列表: Controller :
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);
这样,当代码执行时,文本框的值字段会发生变化(当JS触发时),但是当我检查 Controller 中的发布数据时,它是NULL。
还尝试过: $("#Data_secim_0__ucusGuid").val(index);
这不会改变文本框的值。
我需要的是用js填充模型值并用js发布表单。(用户选择的数据不同,我只是回发表单中项目的GUID。)
最佳答案
2 个可能的问题。你的 getter 正在初始化一个新的 List<Secim>
。尝试在构造函数中初始化它
public class uEkranModel
{
public uEkranModel()
{
secim = new List<Secim>();
}
public List<Secim> secim { get; set;}
....
}
此外,我还看到过有关 SO 的其他帖子,指出回发 GUID 时出现问题(一种被接受的解决方案是使用将 GUID 转换为字符串的 View 模型)
关于javascript - MVC,JS更改值文本框不发布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25304314/