2017-05-04 3 views
1

Ich versuche, eine Funktion mit dem Wert des ausgewählten Index eines Dropdown-Menü aufzurufen, die ein Array zurückgibt und das Ergebnis meiner div ‚Inhalt‘ anhängen, aber ich kann nicht verstehen, wie ich diese Arbeit machen kann ? Ich kann den Variablentest nicht in meiner Funktion verwenden.Wie ruft man eine Funktion in jQuery mit C# Variable auf?

@section Scripts { 
    <script> 
     var test = document.getElementById("drop-down").value 
     $("#content").append("<h1>" + @DB.AfficherReponses(test)[0] + "</h1>") 
    </script> 
} 
+1

Sie müssen ajax verwenden, um eine Server-Methode aufrufen und eine Antwort zurück (oder alle Werte von 'DB.AfficherReponses' der Ansicht übergeben und zu einem JavaScript-Array Assign) –

Antwort

1

Sie können C# Method Wert in JavaScript/jQuery passieren. Aber Sie können nicht JavaScript/jQuery Wert in C# Method übergeben.

möglich:

@{var str="Hi";} 

@section Scripts { 
    <script>   
     $("#content").append("<h1>'" + @str + "'</h1>") 
    </script> 
} 

Impossible:

@section Scripts { 
    <script> 
     var test = document.getElementById("drop-down").value 
     @DB.AfficherReponses(test) 
    </script> 
} 

Aber Sie können von Ajax Berufung tun.

Beispiel:

//controller 
public class JsonDemoController : Controller 
    { 
     public JsonResult WelcomeNote(string name) 
     { 
      string output = "Welcome " +name;  
      return Json(output, JsonRequestBehavior.AllowGet); 
     } 
    } 

//view 

@section Scripts { 
    <script> 
     var test = document.getElementById("drop-down").value 
     $("#content").append("<h1>'" + getWelcomeNote(test) + "'</h1>") 

function getWelcomeNote(name) { 
    var json; 
    $.ajax({ 
     url: "/JsonDemo/WelcomeNote/" + anme, 
     dataType: 'json', 
     async: false 
    }).done(function (data) { 
     json = data; 
    }); 
    return json; 
} 

    </script> 
} 
Verwandte Themen