0

Country クラス (モデル) には次の 2 つのプロパティがあります。

public class Country
{
        [HiddenInput(DisplayValue = false)]
        public int Id { get; set; }

        [Required]
        [Remote("CheckName", "Country", AdditionalFields = "Id")]
        public string Name { get; set; }
}

上記のメソッドIdに渡されることを期待していますCheckName。私は次のようにCheckNameメソッドを持ってCountryControllerいます:

public JsonResult CheckCountryName(string Name, int Id = 0)
{
     return Json(!repository.Countries.Where(c => c.Id != Id).Any(c => c.Name == Name), JsonRequestBehavior.AllowGet);
}

Country クラスのエディター テンプレートを使用しています。@Html.EditorFor(m => m.Country)

Id プロパティは、ID が Country_Id、名前が Country.Id の非表示フィールドとしてレンダリングされています。名前フィールドを編集しているときにCheckName、必要な値を取得していません (名前は null になり、ID は 0 (デフォルト値) になります)

Fiddler をチェックインしました。リクエストは としてサーバーに送られますGET /Country/CheckName?Country.Name=abc&Country.Id=0 HTTP/1.1

これを解決するにはどうすればよいですか?

4

2 に答える 2

0

モデルを通過させています。したがって、名前とIDを個別に使用するのではなくJsonResult、モデルを使用する必要があります。Country

このような:

public JsonResult CheckCountryName(Country country)
{
     return Json(!repository.Countries.Where(c => c.Id != country.Id)
                 .Any(c => c.Name == country.Name), 
                 JsonRequestBehavior.AllowGet);
}
于 2013-06-26T01:04:36.087 に答える