2016-08-07 8 views
0

リモート属性が検証時にコントローラに起動していません。誰にも手がかりがないのですか?ASPコア1.0 RC2でリモートが起動しない

私は、次のクラスがあります。

public class XUser{ 
    [Required] 
    [Range(0, 100, ErrorMessage = "This is an incorrect ID")] //Just a test 
    public int ID { get; set; } 

    [Required] 
    [Remote("CheckUsername", "Home")] 
    public string Name { get; set; } 

    [Required] 
    [RegularExpression(@"[A-Za-z0-9._%+-][email protected][A-Za-z0-9.-]+\.[A-Za-z]{2,4}", ErrorMessage ="This is not an email adres!")] 
    public string Email { get; set; } 
} 

次コントローラ:

[HttpGet] 
public IActionResult Edit(Int64 id) { 
    return View(users.Where(u => u.ID == id).SingleOrDefault()); 
} 

[HttpPost] 
[ValidateAntiForgeryToken] 
public IActionResult Edit(XUser user) { 
    if (ModelState.IsValid) { 
     return RedirectToAction("Index"); 
    } else { 
     return View(user); 
    } 
} 

[HttpGet] 
public JsonResult CheckUsername(string Name) { 
    return Json(false); 
} 

そして最後にではなく、少なくとも、次のビュー:私は私の_layoutで

@model XUser 
@using (Html.BeginForm("Edit", "Home", FormMethod.Post)) { 
    @Html.AntiForgeryToken() 
    @Html.ValidationSummary(true) 

    @Html.EditorFor(Model => Model.ID) @Html.ValidationMessageFor(Model => Model.ID) 
    @Html.EditorFor(Model => Model.Name) @Html.ValidationMessageFor(Model => Model.Name) 
    @Html.EditorFor(Model => Model.Email) @Html.ValidationMessageFor(Model => Model.Email) 
    <input type="submit" value="Save" /> 
} 

次のスクリプトが含まれています:

<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script> 
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script> 

私も次のことを試してみました:

//Class 
[Required] 
[Remote("CheckUsername", "Home", HttpMethod = "POST")] 
public string Name { get; set; } 
//Controller 
[HttpPost] 
[AllowAnonymous] 
public JsonResult CheckUsername(string Name) { 
    return Json(false); 
} 
+1

ASPコア2.0とは何ですか? – Tseng

+0

@Tsengは1.0であったはずです – Sliver2009

答えて

1

誰にも同じ問題に沿って来る場合、私は、さらに参照のために自分の質問にお答えします。私はソリューションエクスプローラでそれを見ることができたかもしれませんが、いくつかのことを見過ごして、時間を大幅に節約することができます!

Fiddlerでは、JQueryファイルが見つからないことがわかりました。パスはもはやMVC 4.0/5.0パスと一致しませんでした。 彼らから移動されました:へ

~/Scripts/jquery.validate.min.js 
~/Scripts/jquery.validate.unobtrusive.min.js 

:さらに

~/lib/jquery-validation/dist/jquery.validate.js 
~/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js 

。 AllowAnonymousは、Remote [](HttpPostまたはHttpGetのいずれの属性も)として属性として持つ必要はありません。

関連する問題