繁体   English   中英

如何基于索引中控件的onchange事件在MVC 5视图中设置隐藏字段的值

[英]How to set value of hidden field in mvc 5 view based on the onchange event of a control that is in an index

所以我在这样的模型中有一个列表:

public class model
{
    public string value1 {get;set;}
    public string value2 {get;set;}
    public List<subModel> value3 {get;set;}
}

public class subModel
{
    public string value4 {get;set;}
    public string value5 {get;set;}
    public bool dirtyFlag {get;set;}
}

在我看来,我可以这样显示此模型:

@for (int i = 0; i < Model.subModel.Count; i++ )
{
    @Html.DropDownListFor(model => model.subModel[i].value4, Model.value4Lookup, 
          Model.subModel[i].value4, new { onchange = "MarkRecordDirty()" })
}

我希望能够使用下拉列表的onchange事件将dirtyFlag设置为true,但是我不确定如何将Model.subModel [i] .value4中[i]的值传递给javascript函数MarkDirtyRecord()

有任何想法吗? 谢谢

好吧,如果您需要做的就是将i的值传递给客户端代码,则可以使用字符串串联来实现:

onchange = "MarkRecordDirty(" + i.ToString() + ")"

循环的每次迭代都会创建新的输出,因此生成的标签将具有不同的输出:

... onchange="MarkRecordDirty(0)" ...
... onchange="MarkRecordDirty(1)" ...
... onchange="MarkRecordDirty(2)" ...
... onchange="MarkRecordDirty(3)" ...
etc.

至于所问的确切问题,应该可以解决。 但是,我怀疑这个问题可能还有更多。 至少在假定依赖记录顺序的情况下,这将使代码相当脆弱。 那可能不会引起任何问题,但是可能会再次出现。 我不知道您要构建的整体解决方案的更多信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM