Estoy usando jQuery.load()
para hacer una vista parcial. Esta parte se ve así:Vista parcial de carga de ASP.NET MVC 2 usando jQuery - sin validación del lado del cliente
$('#sizeAddHolder').load(
'/MyController/MyAction', function() { ... });
El código para acciones en mi controlador es el siguiente:
public ActionResult MyAction(byte id)
{
var model = new MyModel
{
ObjectProp1 = "Some text"
};
return View(model);
}
[HttpPost]
public ActionResult MyAction(byte id, FormCollection form)
{
// TODO: DB insert logic goes here
var result = ...;
return Json(result);
}
estoy volviendo una vista parcial que se ve algo como esto:
<% using (Html.BeginForm("MyAction", "MyController")) {%>
<%= Html.ValidationSummary(true) %>
<h3>Create my object</h3>
<fieldset>
<legend>Fields</legend>
<div class="editor-label">
<%= Html.LabelFor(model => model.ObjectProp1) %>
</div>
<div class="editor-field">
<%= Html.TextBoxFor(model => model.Size.ObjectProp1) %>
<%= Html.ValidationMessageFor(model => model.ObjectProp1) %>
</div>
div class="editor-label">
<%= Html.LabelFor(model => model.ObjectProp2) %>
</div>
<div class="editor-field">
<%= Html.TextBoxFor(model => model.ObjectProp2) %>
<%= Html.ValidationMessageFor(model => model.ObjectProp2) %>
</div>
<p>
<input type="submit" value="Create" />
</p>
</fieldset>
<% } %>
La validación del lado del cliente no funciona en este caso. Además, el script que contiene mensajes de validación tampoco está incluido en la vista que se devuelve. Ambas propiedades en mi clase de modelo tienen atributos Required
y StringLength
. ¿Hay alguna manera de activar la validación del lado del cliente en una vista que se ha cargado así?
Gracias por valiosa información. He corregido estos errores, pero eso realmente no hace la diferencia. El html renderizado es exactamente el mismo en ambos casos, ya que 'load()' obtiene el html de la misma forma que 'ajax()' usando XMLHttpRequest y 'return View (model)' si no hay SomeAction.aspx renderizará SomeAction.ascx . Eche un vistazo aquí: http://stackoverflow.com/questions/2043394/what-is-the-difference-between-a-view-and-a-partialview-in-asp-net-mvc Así que el problema principal es sigue ahí: sin validación del lado del cliente; ninguna secuencia de comandos que contenga mensajes de validación ... –
El código anterior no resuelve el problema original –
que puede devolver una Vista también, en realidad no importa siempre que la vista que está devolviendo no use la misma página maestra que la anterior donde se llama – Omu