Ajax.BeginForm mich verrückt
ASP.NET MVC3
Habe ich eine teilweise Ansicht, die zunächst gerendert, die sich innerhalb eines div. Im folgenden ist die partielle code:
@model Venue.Models.Validation.CustomerRequestModel
<script src="@Url.Content("~/Scripts/jquery-1.4.4.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
<script type="text/javascript" src="/Scripts/MicrosoftAjax.js"></script>
<script type="text/javascript" src="/Scripts/MicrosoftMvcAjax.js"></script>
<script type="text/javascript" src="/Scripts/MicrosoftMvcValidation.js"></script>
@{ Html.RenderPartial("Message"); }
@Html.ValidationSummary()
@using (Ajax.BeginForm(
"Customer",
"Service",
null,
new AjaxOptions()
{
HttpMethod = "post",
InsertionMode = InsertionMode.Replace,
LoadingElementDuration = 100,
LoadingElementId = "loading-customer",
OnBegin = "hideSubmitButton",
OnSuccess = "hideForm",
OnComplete = "showSubmitButton",
OnFailure = "showErrorMessage",
UpdateTargetId = "formclientes",
},
new
{
id = "customer-form"
}))
{
//Fields are all type="text" although some are numbers.
<input type="text" name="Address" class="clientes_form" />
}
Aktion:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Customer(CustomerRequestModel customer)
{
//...
}
In das Direktfenster, das ist, was ich bekomme:
this.Request.IsAjaxRequest()
false
Warum?!
Hi Fabio... ich, die mit Ihrem code, aber in der Aktion ich habe versucht, ändern Sie die customer-Eigenschaft, wie : der Kunde.Name = "NewName" und return View(Kunden), aber die UI nicht aktualisiert ... weißt du, warum?
In diesem Fall habe ich Ajax.BeginForm anstelle von Html.BeginForm, weil ich wollte, um wieder eine Teilansicht (so dass nur ein Teil der Seite aktualisiert werden sollen). Wenn Ihr Ziel ist das gleiche, sollten Sie wieder wie diese: die Rückkehr.PartialView("PartialViewName", Kunde);. Wenn dies nicht Ihre Frage beantworten, post eine neue und versorgen mich mit einem link darauf zugreifen.
In diesem Fall habe ich Ajax.BeginForm anstelle von Html.BeginForm, weil ich wollte, um wieder eine Teilansicht (so dass nur ein Teil der Seite aktualisiert werden sollen). Wenn Ihr Ziel ist das gleiche, sollten Sie wieder wie diese: die Rückkehr.PartialView("PartialViewName", Kunde);. Wenn dies nicht Ihre Frage beantworten, post eine neue und versorgen mich mit einem link darauf zugreifen.
InformationsquelleAutor Fabio Milheiro | 2010-12-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollten Sie auch jquery.unobtrusive-ajax.js wenn Sie
in Ihrer Website.config-Datei, die standardmäßig aktiviert MVC3 RC2.
Und auch die Löschung der letzten 3 (MicrosoftAjax, MicrosoftMvcAjax und MicrosoftMvcValidation)Skript, Referenzen, denn Sie brauchen Sie nicht, wenn Sie mit unaufdringlich-version.
Mehr Infos über unobtrusive Ajax von Brad Wilson
InformationsquelleAutor Bcelik