gpt4 book ai didi

c# - 获取 View 模型属性的模型状态键

转载 作者:太空宇宙 更新时间:2023-11-03 13:06:23 25 4
gpt4 key购买 nike

我有一个添加产品表单,它取决于用户之前添加的类别、产品类型等。我不想让他们填写表单,然后意识到他们无法提交表单,而是希望在表单首次加载时显示错误。

我想针对适当的属性将此错误添加到模型状态 - 所以我的问题是如何获取该属性的模型状态键名?

代码

    Model.Step1.PopulateData(_productTypeSvc.GetList(), _websiteSvc.GetMaximumNumberOfProductImages(HttpContext.Request.Url.Host));
Model.Title = "Add A Product - Step 1: The Basics";
if (Model.Step1.ProductTypes.IsNullOrEmpty())
{
//Rather than string.Empty, I want to programmatically get the correct key to add the error to..
//E.g. if it were the view - HtmlHelper.NameFor(m => m.Step1.ProductTypeID)
ModelState.AddModelError(string.Empty, "Please add at least one product type before adding products.");
}

我知道我可以伪造 HtmlHelper 对象,但我宁愿避免这种情况并想知道是否有更好的方法?

最佳答案

在 MVC 中找到合适的扩展:

System.Web.Mvc.ExpressionHelper.GetExpressionText(LambdaExpression expression);

MSDN Here .

谢谢你们。

更新:

public static string GetPropertyName<TModel, TValue>(this TModel model, Expression<Func<TModel, TValue>> propertySelector)
{
return ExpressionHelper.GetExpressionText(propertySelector);
}

然后使用扩展:

ModelState.AddModelError(Model.GetPropertyName(m => m.Step1.ProductTypeID), "Please add at least one product type before adding products.");

关于c# - 获取 View 模型属性的模型状态键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30644180/

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