在构造器MVC中更改模型值
本文关键字:模型 构造器 MVC | 更新日期: 2023-09-27 18:12:16
这是一个技术问题,不是bug。
我有一个这样定义的模型:
public string ModelId {get; set;}
public string OtherValue {get; set;}
和我有图像存储在服务器端。
我希望用我的图片代替otherValue制作模型的表格列表,所以我想知道它是否可能,如果它可以被认为是一个很好的方法来改变模型。这两个模型是其他更复杂模型的包装器。
在我的控制器中,我建立了这样一个模型:
var data = _db.OriginalModel.Where(o => o.OriginalModelId == tempId).ToList();
var model = data.Select( d => new Model
{
ModelId = d.OriginalModelId,
OtherValue = d.SelectValue
});
这就引出了我的问题:
我可以在模型中绑定数据如下:
public Model(){
switch(OtherValue){
case "UP" :
OtherValue = "pathToImage";
break;
case "DOWN" :
OtherValue = "pathToImage2";
break;
etc...
}
}
从我测试到现在这不起作用,是否有另一种方式不是:直接将OtherValue的值设置为我在设置它们的选择中寻找的路径?
既然你的问题是非常模糊和模棱两可的,我只能建议也许你应该写你的逻辑在你的属性Setter:
public class MyClass
{
private string _otherValue;
public string ModelId {get; set;}
public string OtherValue
{
get
{
return this._otherValue;
}
set
{
switch(value){
case "UP" :
_otherValue = "pathToImage";
break;
case "DOWN" :
_otherValue = "pathToImage2";
break;
// etc...
}
}
}
}
你的标题建议改变构造函数中的值,但你绝对没有使用构造函数逻辑与参数的代码示例。
var a = new MyModel();
a.ModelId = 1;
a.OtherValue = "DOWN";
的字面意思与
相同var a = new MyModel
{
ModelId = 1,
OtherValue = "DOWN"
};