gpt4 book ai didi

c# - ASP MVC.NET - 如何绑定(bind) KeyValuePair?

转载 作者:可可西里 更新时间:2023-11-01 08:46:33 26 4
gpt4 key购买 nike

是否可以绑定(bind)这种属性?

public KeyValuePair<string, string> Stuff { get; set; }

我尝试在 View 中使用以下代码,但它不起作用:

<%=Html.Text("Stuff", Model.Stuff.Value)%>    
<%=Html.Hidden("Model.Stuff.Key", Model.Stuff.Key)%>

最佳答案

KeyValuePair<K,V>是一个结构,而不是一个类,所以每次调用你的Stuff属性(property)返回原件的副本 KeyValuePair .所以,当你绑定(bind)到 Model.Stuff.ValueModel.Stuff.Key ,您实际上正在处理 KeyValuePair<K,V> 的两个不同实例,其中没有一个来自您的模型。所以当它们更新时,它不会更新模型中的 Stuff 属性...... QED

顺便说一下,Key 和 Value 属性是只读的,所以你不能修改它们:你必须替换 KeyValuePair实例

以下解决方法应该有效:

型号:

private KeyValuePair<string, string> _stuff;
public KeyValuePair<string, string> Stuff
{
get { return _stuff; }
set { _stuff = value; }
}

public string StuffKey
{
get { return _stuff.Key; }
set { _stuff = new KeyValuePair<string, string>(value, _stuff.Value); }
}

public string StuffValue
{
get { return _stuff.Value; }
set { _stuff = new KeyValuePair<string, string>(_stuff.Key, value); }
}

查看:

<%=Html.Text("Stuff", Model.StuffValue)%>    
<%=Html.Hidden("Model.StuffKey", Model.StuffKey)%>

关于c# - ASP MVC.NET - 如何绑定(bind) KeyValuePair?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1300642/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com