2016-08-07 16 views
0

Das Remote-Attribut wird bei der Überprüfung nicht an den Controller gesendet. Hat jemand eine Ahnung warum nicht?Remote wird in ASP Core 1.0 nicht gestartet. RC2

Ich habe die folgende Klasse:

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; } 
} 

Die folgende Controller:

[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); 
} 

Und last but not least, die folgende Ansicht:

@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" /> 
} 

In meinem _Layout Ich habe Die folgenden Skripte enthalten:


Ich habe auch versucht die folgenden:

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

Was ist ASP Core 2.0 ...? – Tseng

+0

@Tseng, das 1.0 hätte sein sollen – Sliver2009

Antwort

1

Ich werde meine eigene Frage zur weiteren Verfügung beantworten, ob jemand auf dem gleichen Problem kommen. Ich hätte es im Solution Explorer sehen können, aber einige Dinge, die Sie einfach übersehen und viel Zeit sparen können!

Mit Fiddler habe ich gesehen, dass die JQuery-Dateien nicht gefunden wurden. Die Pfade stimmen nicht mehr mit MVC 4.0/5.0-Pfaden überein.

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

zu: Sie sind aus bewegt worden

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

Weitere; AllowAnonymous ist nicht verpflichtet, ein Attribut mit Remote [] zu haben (weder für HttpPost noch für HttpGet).