C# ASP.Net MVC-在程序集之间重写窗体
以下是我的工作申请的背景:C# ASP.Net MVC-在程序集之间重写窗体,c#,.net,asp.net-mvc,C#,.net,Asp.net Mvc,以下是我的工作申请的背景: 堆芯组件 模型库模型 MyController.Save(模型库模型) Site1组件 MyModel:ModelBase 站点2组件 MyModel:ModelBase Site1和Site2都引用核心程序集,并且都是已部署的网站 Core充当一个引用asp mvc程序集的库 公共类模型库:IValidatableObject { 公共虚拟字符串FirstName{get;set;} 公共虚拟字符串LastName{get;set;} //[…]表对
- 堆芯组件
- 模型库模型
- MyController.Save(模型库模型)
- Site1组件
- MyModel:ModelBase
- 站点2组件
- MyModel:ModelBase
公共类模型库:IValidatableObject
{
公共虚拟字符串FirstName{get;set;}
公共虚拟字符串LastName{get;set;}
//[…]表对象内容
}
公共类MyController:Controller{
公共操作结果保存(模型库模型){
如果(!ModelState.IsValid)返回视图(model);
返回重定向(“/Success”);
}
}
现在在Site1程序集中,我有类似的东西
在Site2程序集中,我有类似的东西
我想要的是:
- 要在核心组件中仅保存保存逻辑(MyController的保存方法)
- 能够在每个站点*.MyModel中说明此字段是否为必填字段,从而让控制器对此采取行动
- 如果模型无效,我希望在视图中使用具体模型(MyModel),而不是“基本”模型(ModelBase),这样视图将显示并生成正确的验证内容。
public class MyModel : ModelBase
{
[Required]
[Display(/*...*/)]
public override String FirstName { get; set; }
public override String LastName { get; set; }
}
public class MyModel : ModelBase
{
public override String FirstName { get; set; }
[Required]
[Display(/*...*/)]
public override String LastName { get; set; }
}