【问题标题】:MVC , JS change value textboxfor not postingMVC,JS更改值文本框不发布
【发布时间】: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


【解决方案1】:

2 个可能的问题。您的 getter 正在初始化一个新的 List&lt;Secim&gt;。尝试在构造函数中初始化它

public class uEkranModel
{
  public uEkranModel()
  {
    secim = new List<Secim>();
  }
  public List<Secim> secim { get; set;}
  ....
}

我还看到其他关于 SO 的帖子表明回发 GUID 存在问题(一种被接受的解决方案是使用将 GUID 转换为字符串的视图模型)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-12
    • 1970-01-01
    • 1970-01-01
    • 2014-02-11
    相关资源
    最近更新 更多