【发布时间】:2014-07-18 20:34:08
【问题描述】:
当使用ValidationSummary() 时,我在初始创建时看到Name 的必需错误。
我已经尝试在构造函数中初始化 Name="" 并且不初始化(通过 Name=null) - 结果相同。
如何让ValidationSummary() 不在此字段上显示初始错误?
型号
public class Scenario
{
public Int32 ID { get; set; }
//user input
[Required]
[DisplayName("Scenario Name")]
public String Name { get; set; }
[Required]
[DisplayName("Location")]
public Int32 LocationId { get; set; }
//..lots more, but omitted for question length
控制器
// GET: Scenario/Create
public ActionResult Create(Scenario copyFrom = null)
{
var vm = new EditScenarioViewModel
{
scenario = copyFrom ?? new Scenario(User.Identity.Name),
};
var periods = _performancePeriods.GetPeformancePeriodsHistory().ToList();
vm.scenario.FiscalPeriodStarting = periods.ElementAt(2).PerformancePeriodID; //default is 3rd period back
vm.scenario.FiscalPeriodEnding = periods.ElementAt(0).PerformancePeriodID;
vm = PrepareDropdowns(vm);
return View(vm);
}
【问题讨论】:
-
您是否知道验证运行在传递给操作的任何模型上,而不管方法(Get、Post、Put 等)如何?你将如何确定
initial error错误是什么? -
ValidationSummary()似乎不是很有用,如果它要在一个全新的对象上抛出错误......正确的使用模式是什么? -
互联网上有无数关于 GETting 没有错误的初始视图的 asp.net-mvc 方法的示例,以及有错误的 POSTed 视图,我无法理解为什么你将它们组合成一个动作。
-
它们是不同的操作...我也有一个
[HttpPost]操作...它们共享相同的视图。该参数用于从现有的Scenario创建副本。 -
那为什么GET有参数呢?请发帖the complete code example。
标签: c# validation asp.net-mvc-4 validationsummary