In questo pezzo di codicestringa di parametri in AjaxOption nulla su Submit, ma che mostra in risposta
@using (Ajax.BeginForm("MyAction", "MyRouteValues", new AjaxOptions { OnSuccess = "myJSFunction(" + Model.IntegerParameter + ", '" + Model.StringParameter + "')" }))
Perché il JavaScript riconosce Model.IntegerParameter correttamente, ma Model.StringParameter come null
? Sono sicuro che ha i dati su di esso, come posso controllare la risposta e si vede come questo
data-ajax-success="myJSFunction(111111, 'AAAAAA')"
My View modello
è molto semplice e sembra che questopublic class MyViewModel
{
public int IntegerParameter { get; set; }
public string StringParameter { get; set; }
}
Come posso risolvere questo problema?
Aggiunto Info
Ho provato a cambiare il secondo parametro int, ora il suo non passando come null
ma 0
e ancora si vede nella risposta in Firebug.
Ho aggiunto Html.Raw, ma ha ancora un valore null
in Javascript.
Ecco un vero e proprio screenshot mondo di ciò che ottengo nella risposta console:
--------------- Un altro aggiornamento ---- --------------
ho provato tutti i suggerimenti, ma sembra essere un BUG in
MVC
s # arp? Ho provato in diversi progetti e su PC diversi succede ancora per me. Ho notato che questo accade solo se proviene da un modello sembra che ciò che accade tra la risposta a Javascript il valore della stringa venga perso indipendentemente dal fatto che sia il primo, il secondo o qualsiasi posizione nel parametro, ma se uso un valore hard coded, come ad esempio:
myJSFunction(" + Model.IntegerParameter + ", 'AAAAAAAA')"
ottengo un risultato positivo, anche se uso jQuery come tale:
myJSFunction(" + Model.IntegerParameter + ", $('#SearchString').val())"
Questo funziona anche, ma se lo faccio passare un modello che è una stringa come tali
myJSFunction(" + Model.IntegerParameter + ", '" + Model.StringParameter + "')"
Questo non funziona.
Quindi vuoi vedere cosa succede realmente nel mondo reale dove ho preso in considerazione i suggerimenti di @Darin e @Shark. Ecco uno screenshot:
Come si vede nella risposta, è lì, ma quando passò a Javascript, si perde. Ecco la vera vita Javascript pure
displayResultsPopUpWindow: function (model) {
var postData = {
transactionId: model.transactionId,
searchString: model.searchString
};
$.post("/Invoicing/GetSearchResults", postData, function (data) {
WindowHelper.displayWindow("Add Airline Transaction", "<div id='matchBookingResults'>" + unescape(data.viewHtml) + "</div>", 640, 500);
});
},
Ho appena provato questo con un arp # S # Progetto di architettura, e non riesco a riprodurre il problema. Che aspetto hanno i dati pubblicati quando si ottiene un valore null? –