En este trozo de códigoparámetro de cadena de AjaxOption nulo en Submit pero mostrando en respuesta
@using (Ajax.BeginForm("MyAction", "MyRouteValues", new AjaxOptions { OnSuccess = "myJSFunction(" + Model.IntegerParameter + ", '" + Model.StringParameter + "')" }))
¿Por qué reconoce mi Javascript Model.IntegerParameter correctamente, pero Model.StringParameter como null
? Estoy seguro de que tiene datos sobre ella como puedo comprobar la respuesta y se nota como esta
data-ajax-success="myJSFunction(111111, 'AAAAAA')"
Mi vista del modelo es muy simple y parece que este
public class MyViewModel
{
public int IntegerParameter { get; set; }
public string StringParameter { get; set; }
}
¿Cómo puedo solucionar esto?
Agregado Información
He intentado cambiar el segundo parámetro a int, ahora es que no pase como null
pero 0
y todavía se nota en la respuesta en FireBug.
He añadido el Html.Raw, pero todavía obtiene un valor de null
en Javascript.
Aquí es una verdadera pantalla mundo de lo que me pasa en la respuesta de la consola:
--------------- otra actualización ---- --------------
probé todas las sugerencias, pero parece ser un error en
MVC
s # arp? Intenté en diferentes proyectos y en diferentes PC aún me sucede. Me di cuenta de que esto solo sucede si proviene de un Modelo, parece que sucede entre la respuesta a Javascript, el valor de la cadena se pierde independientemente de si es la primera, segunda o cualquier posición en el parámetro, pero si utilizo un valor codificado, tales como:
myJSFunction(" + Model.IntegerParameter + ", 'AAAAAAAA')"
consigo un resultado exitoso, también si uso jQuery como tales:
myJSFunction(" + Model.IntegerParameter + ", $('#SearchString').val())"
Esto también funciona, pero si lo hago pasar un modelo que es una cadena como tales
myJSFunction(" + Model.IntegerParameter + ", '" + Model.StringParameter + "')"
Esto no funciona.
Entonces, ¿quieres ver lo que realmente sucede en el mundo real donde tomé en cuenta las sugerencias de @Darin y @Shark. Aquí está una captura de pantalla:
Como se puede ver en la respuesta, que está ahí, pero cuando se pasa a Javascript, se pierde. Esta es la vida real, así Javascript
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);
});
},
Acabo de probar esto con un S # arp Proyecto de arquitectura, y no puedo reproducir el problema. ¿Cómo son los datos publicados cuando obtiene un nulo? –