MVC 응용 프로그램에서 엔터티 프레임 워크를 사용하여 원격 유효성 검사를 구현하려고합니다. 액션 서명과 적절한 라우트 구성을 정의하는 데 도움이 필요합니다. 내 모델에서 다음과 같은 클래스가 :매개 변수 이름에 마침표가있는 MVC 라우팅
public class FiscalReports
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public long id { get; set; }
public Int64 Counter { get; set; }
public short FiscalYear { get; set; }
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:MMM dd, yyyy}")]
[DisplayFormat(DataFormatString = "${0:N0}")]
[Remote("ValidateSalary", "FiscalReports", AdditionalFields ="Counter, FiscalYear")]
public int? Salaries { get; set; }
}
나는 상기 목적의 여러가 포함 된 뷰에 사용되는 뷰 모델이있다. 뷰에서
public JsonResult ValidateSalary(int Salaries, short FiscalYear, int Counter)
{
return ValidateFiscalField(Salaries, FiscalYear, Counter, "Salaries");
}
내가이 올바르게 필드와 검증을 생성하는 HTML 도우미
@Html.EditorFor(model=>model.CurrentFR.Salaries)
을 사용하고 있습니다 :
public class FiscalReportVM
{
public FiscalReports CurrentFR { get; set; }
public FiscalReports ReportedToDate { get; set; }
public FiscalReports BudgetToDate { get; set; }
}
유효성 검사 작업은 FiscalReports 컨트롤러에서 다음과 같이이다. 검증 요청이 제대로 발사되는
input data-val="true" data-val-number="The field Salaries must be a number." data-val-remote="'Salaries'; is invalid." data-val-remote-additionalfields="*.Salaries,*.Counter,*.FiscalYear" data-val-remote-url="/FiscalReports/ValidateSalary" name="CurrentFR.Salaries" type="number" value="" />
아래에 생성 된 HTML이며 피들러에서 나는 다음과 같은 요청을 참조하십시오
http://localhost:50409/FiscalReports/ValidateSalary?CurrentFR.Salaries=27000&CurrentFR.Counter=4773&CurrentFR.FiscalYear=2
내 문제는 내가 문제 점에서 변수와 경로와 행동을 정의를 가지고 표기법. 작업 정의에서 점선 매개 변수를 사용할 수 없습니다 (ValidatingSalary (int CurrentFR.Salaries, ....) 할 수 없음). 동작 서명 및 해당 경로 구성을 정의하는 데 도움이 필요합니다.
[URL의 점으로 인해 ASP.NET mvc 및 IIS에서 404가 발생 함] (http://stackoverflow.com/questions/11728846/dots-in-url-causes-404-with-asp-net-mvc-and-iis) – NightOwl888