c# - mvc [Remote] 标签引用单独的项目控制器
问题描述
首先让我说我想我知道我的问题,但我不知道如何解决它。我的任务是为我们的应用程序清理验证部分。我们在不同的项目中有实体模型和 MVC 应用程序,一个称为“核心”,另一个称为“webapp”
我似乎无法触发我的 [远程] 验证。我已经完成了我的研究,但我相信这是因为,我试图在我的单独项目中引用一个控制器。
我的核心项目中的简化模型看起来像
namespace Project.Core.Models
{
[Table(name: "MT_DATABASE_SERVERS")]
public class DatabaseServer : ModelBase
{
[Key]
public int Id { get; set; }
[Required]
[MaxLength(500)]
[Display(Name = "Database Server")]
[Remote("IsPropertyExists","DatabaseServers", HttpMethod = "POST",ErrorMessage = "This Server is already in use.")]
public string ServerName { get; set; }
}
}
这是一个简化的控制器逻辑
namespace Project.WebApp.Controllers.Servers
{
public class DatabaseServersController : ControllerBase
{
[HttpPost]
public ActionResult Create(DatabaseServer databaseServer
{
using (var db = GetMTContext())
{
db.DatabaseServers.Add(databaseServer);
db.SaveChanges();
return RedirectToAction("List");
}
}
[HttpPost]
public ActionResult IsPropertyExists(string property)
{
using (var db = GetMTContext())
{
return Json(!db.DatabaseServers.Any(x => x.ServerName == property), JsonRequestBehavior.AllowGet);
}
}
}
}
解决方案
你需要指定AdditionalFields = "property"
然后你的代码像
[Remote("IsPropertyExists","DatabaseServers", AdditionalFields = "property", HttpMethod = "POST",ErrorMessage = "This Server is already in use.")]
public string ServerName { get; set;a }
但条件是您需要property
在模型或实体中添加或存在附加字段。
推荐阅读
- python-3.x - 当我执行“rasa init”错误:“未能安装本机 tensorflow 运行时”
- python - 为什么我在脚本模式下而不是在交互模式下收到语法错误?
- perl - 如何在 PERL 中打印数组引用的值?
- c# - 找不到提供工具箱控件
- xcode - 有没有办法在 Playgrounds 中使用 UIColor(named: "") .colorset 文件?
- ruby-on-rails - 仅显示表格“订单”的一个条目
- class - Xamarin - 必须定义数据库路径
- arrays - React - OnClick 显示数组中的下一个元素
- javascript - VIDEOjs 可拖动进度条
- php - 如何回显选定的选项值。不选择名称