2017-04-09 1 views
-1

Ich beginne zu lernen ASP.NET und versuche zu überprüfen, ob ein Textfeld richtig formatiert ist. Ich kann nach dem richtigen Format suchen, aber ich weiß nicht, wie man den cshtml im Frontend und im cs im Backend anschließt. Unten ist mein Code von Index.cshtmlSo rufen Sie C# -Funktion mit ASP.NET MVC

@{ 
    ViewData["Title"] = "Home Page"; 
} 

<div> 
    <h2>Robot Control Main Page</h2> 
    <div class="row"> 
     <div class="col-md-2 col-md-offset-5"> 
      <span> 
       <input type="text" size="20" name="ipAddr" placeholder="IP Address"> 
       <input type="button" name="btn_confirm" value="Confirm" onclick="CheckValidIP()"> 
      </span> 
     </div> 
    </div> 
</div> 

Und das ist die Funktion von meiner C# HomeController-Klasse.

//From my C# class 
public ActionResult CheckValidIP() 
{ 
    return View(); 
} 

Wie verbinde ich den Button klicken, um die C# Funktion und haben die gleiche C# Funktion Zugriff auf die Textvariable Eingang in der Spanne?

+3

Sie müssen von den Grundlagen lernen. Überprüfen Sie diesen MS offiziellen Link https://docs.microsoft.com/en-us/aspnet/mvc/overview/getting-started/introduction/getting-started –

+0

Es funktioniert nicht so. MVC hat ein anderes Konzept als WebForms. Sie könnten eine JavaScript-Funktion schreiben, um Eingaben im Browser zu validieren, oder Sie buchen das Modell in Aktion und validieren den Wert in Aktion. Es gibt keine einfache Möglichkeit zu sagen, welche C# -Funktion für Eingaben von cshtml auszuführen ist. –

Antwort

0

Die Art, wie Sie möchten, ist eher außergewöhnlich und ich würde Ihnen empfehlen zu lernen, wie Validierung in MVC funktioniert. Wenn Sie jedoch das Feld auf dem Server validieren müssen, müssen Sie die Remote-Validierung verwenden, die hier erklärt wird: How to: Implement Remote Validation in ASP.NET MVC.

1

Die Sache, die Sie suchen, heißt "Remote-Validierung" in Asp.Net MVC.

Zuerst sicherstellen, dass die Client-Validierung in Ihrer web.config aktiviert ist.

<appSettings> 
    <add key="ClientValidationEnabled" value="true" /> 
    <add key="UnobtrusiveJavaScriptEnabled" value="true" /> 
</appSettings> 

Zweite erstellen die Validierungsmethode in Ihrem Controller, der eine JsonResult zurück.

public class ValidationController : Controller 
{ 
    public JsonResult CheckValidIP(string clientIP) 
    { 
     //your validation code here 
     if (!_repository.AllowIp(clientIP)) 
      return Json(true, JsonRequestBehavior.AllowGet); 
     else 
      return Json(false, JsonRequestBehavior.AllowGet); 
    } 
} 

Dritte im Modell einsetzen [Remote] Attribut. Der erste Parameter ist der Action und der zweite ist der Controller.

public class CreateUserModel : EditUserModel { 
    [Remote("CheckValidIP", "Validation")] 
    public override string ClientIP { get; set; } 
} 

Last but not least, Sie haben Html Helper zu verwenden, um die HTML mit JavaScript zu generieren und so weiter.

@model RemoteValidation.Models.SampleModel 

@using (Html.BeginForm()) 
{ 
    @Html.AntiForgeryToken() 

    <div class="form-horizontal"> 
     <h4>Remote Validation</h4> 
     <hr /> 
     @Html.ValidationSummary(true, "", new { @class = "text-danger" }) 
     <div class="form-group"> 
      @Html.LabelFor(model => model.ClientIp, htmlAttributes: new { @class = "control-label col-md-2" }) 
      <div class="col-md-10"> 
       @Html.EditorFor(model => model.ClientIp, new { htmlAttributes = new { @class = "form-control" } }) 
       @Html.ValidationMessageFor(model => model.ClientIp, "", new { @class = "text-danger" }) 
      </div> 
     </div> 

     <div class="form-group"> 
      <div class="col-md-offset-2 col-md-10"> 
       <input type="submit" value="Create" class="btn btn-default" /> 
      </div> 
     </div> 
    </div> 
} 

<script src="~/Scripts/jquery-1.10.2.min.js"></script> 
<script src="~/Scripts/jquery.validate.min.js"></script> 
<script src="~/Scripts/jquery.validate.unobtrusive.min.js"></script> 

Hier ist eine Beispielanwendung ausgeführt wird, nur mit dem Remote-Validierung, hier =>https://github.com/ricardodemauro/AspNetMVCRemoteValidation

Die RemoteAttribute Klasse erstellt eine Zeichenfolge, die die URL der serverbasierten Validierung verwenden repräsentiert aufzurufen. Das ASP.NET MVC-Framework sendet dann die JSON-codierte GET-Anforderung für die URL. In diesem Beispiel, wenn der Benutzer „127.0.0.1“ in dem Client-IP-Texteingabefeld eingibt, wird der Client die folgende URL anfordern: /Validation/CheckValidIP?ClientIP=127.0.0.1

Hier erfahren Sie mehr finden detail information =>https://msdn.microsoft.com/en-us/library/gg508808(vs.98).aspx