2017-06-29 4 views
0

übergeben wird Ich möchte dynamische Werte an den Controller wie querystring übergeben. Ich übergebe eine Zeichenfolge, aber ich bekomme null in der Steuerung. Ich treffe die URL "http://localhost:62666/tracker/MapDetails/sss", bekomme aber keinen Wert in der Steuerung. Kannst du darauf hinweisen, wo ich einen Fehler gemacht habe?nicht in der Lage, Parameterwert in der Steuerung zu erhalten, die von der URL

Controller:

public ActionResult MapDetails(string val) 
{ 
    AssetTracker model = new AssetTracker(); 
    model.deviceid = val; 
    return View(model); 
} 

Ausblick:

@model smartpond.Controllers.AssetTracker 
@{ 
    ViewBag.Title = "MapDetails"; 
    Layout = "~/Views/Shared/_Layout.cshtml"; 
} 
<h1> 
    My device id is : @Model.deviceid 
</h1> 
+0

versuchen http: // localhost: 62666/Tracker/MapDetails val = sss – Michael

+0

ja seine Arbeits, im immer aber warum so passieren, während einzelne Parameterübergabe mit?. – pvkm

Antwort

1

Sie erhalten Nullwert in der Steuerung, da das Bindemittel Modell in MVC konnte nicht die Variable binden Sie also an die MVC Routen bestanden haben , müssen Sie Ihre benutzerdefinierte Route hinzufügen, die Ihre Weitergabeparameter erfüllt, um sie im Modellordner zu identifizieren, um Ihre benutzerdefinierten Routen hinzuzufügen. Sie müssen sie in die RouteConfig.cs-Datei im Ordner app_start in Ihrer Lösung schreiben und sicherstellen, dass Sie anhängen Es steht an der Spitze der Standardroute mit einem anderen Namen.

routes.MapRoute(
      name: "Overrided", 
      url: "{controller}/{action}/{val}", 
      defaults: new { controller = "Home", action = "Index", val= UrlParameter.Optional } 
     ); 
Verwandte Themen