gpt4 book ai didi

c# - 具有复杂属性的 ViewModel

转载 作者:太空狗 更新时间:2023-10-29 21:44:51 25 4
gpt4 key购买 nike

我不确定如何让它发挥作用。我不知道如何在这个 ViewModel 上为我的 Customer 属性创建 [Display(Name = "XXXX")]:

public class CreateAccountViewModel
{
[Required]
public Customer Customer { get; set; }

[Required]
[Display(Name = "Username")]
public string UserName { get; set; }

[Required]
[DataType(DataType.Password)]
[Display(Name = "Password")]
public string Password { get; set; }

[DataType(DataType.Password)]
[Display(Name = "Confirm password")]
public string ConfirmPassword { get; set; }
}

我应该为 Customer 创建一个 ViewModel 并引用它而不是 Customer 对象吗?然后为所有属性创建 Display()

如果是这样,映射会在提交时起作用吗?

我按如下方式使用它(片段):

<div class="form-group">
@Html.LabelFor(m => m.Customer.CompanyName, new { @class = "col-md-2 control-label" })
<div class="col-md-10">
@Html.TextBoxFor(m => m.Customer.CompanyName, new { @class = "form-control" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(m => m.Customer.CVR, new { @class = "col-md-2 control-label" })
<div class="col-md-10">
@Html.TextBoxFor(m => m.Customer.CVR, new { @class = "form-control" })
</div>
</div>

我希望将“CompanyName”更改为更好的名称,例如“Company name”。 :-)

最佳答案

像往常一样,如果我需要显示一些具有此类子对象的复杂模型 - 我会为该对象创建另一个模型,并在新模型中指定属性。然后指定此模型而不是 Customer 属性。

@Html.LabelFor(m => m.Customer.CompanyName, new { @class = "col-md-2 control-label" })

如果子模型具有 Display 属性,应该可以正常工作。

另一种方法是在您的域类下指定这些属性,但对我来说——我不喜欢用 UI 属性弄脏域对象

关于c# - 具有复杂属性的 ViewModel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20760927/

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