0

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, ....) 할 수 없음). 동작 서명 및 해당 경로 구성을 정의하는 데 도움이 필요합니다.

+0

[URL의 점으로 인해 ASP.NET mvc 및 IIS에서 404가 발생 함] (http://stackoverflow.com/questions/11728846/dots-in-url-causes-404-with-asp-net-mvc-and-iis) – NightOwl888

답변

1

이름 속성을 변경하는 JQuery와의 비트를 사용하는 뭔가의 효과 :?.

$ ("CurrentFR.Salaries") ATTR ('이름', '급여')를

는 비슷하지 문제가 발생 기억 보기에서 이름을 일시적으로 변경 한 다음 작업에서 다시 변경했습니다.

관련 문제