C# mvc[远程]标签参考独立项目控制器

C# mvc[远程]标签参考独立项目控制器,c#,asp.net-mvc,validation,entity-framework-6,C#,Asp.net Mvc,Validation,Entity Framework 6,首先我想我知道我的问题,但我不知道如何解决它。 我的任务是清理应用程序的验证部分。 我们在单独的项目中有实体模型和MVC应用程序,一个称为“core”,另一个称为“webapp” 我似乎无法启动我的[远程]验证。我已经做了我的研究,但我相信这是因为,我试图在我的单独项目中引用一个控制器 我的核心项目中的简化模型类似于 namespace Project.Core.Models { [Table(name: "MT_DATABASE_SERVERS")] public class

首先我想我知道我的问题,但我不知道如何解决它。 我的任务是清理应用程序的验证部分。 我们在单独的项目中有实体模型和MVC应用程序,一个称为“core”,另一个称为“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  }

但条件是您需要在模型或实体中添加或存在其他字段
属性

在浏览器的开发者工具中,您是否看到浏览器发送的XHR请求?如果是,状态代码是什么?是,所有状态均为200。我不确定我特别想要什么。我看到xmlHttpRequests。在列表的顶部,我有一篇关于创建视图的帖子。然后,下一个是列表视图的GET,我假设它是用于db更新后的重定向。您的属性名称是
ServerName
,因此该方法必须是
public ActionResult IsPropertyExists(string ServerName)
-它们必须匹配我尝试过,但仍然没有注册任何内容:/这并没有改变任何事情。如果控制器存在于不同的项目中,如何指定正确的控制器“DatabaseServers”?我相信这是我的问题。你看不同的项目控制器意味着它在同一个解决方案?同一个解决方案。不同的项目。查看名称空间,了解解决方案的外观以获得清晰性…我的Web应用程序项目取决于我的核心项目(核心是我们的数据模型)。我无法向Webapp添加依赖项,因为Webapp已经引用了核心项目。