İletişim formu aracılığıyla verileri göndermek için göze batmayan ajax kullanarak sorun yaşıyorum. Benim Kısmi Görüntüle böyle başka bir sayfaya yerleştirilirKısmi görünüm için göze batmayan Ajax Formu
@model site.ViewModel.Home.ContactUsViewModel
@using (Ajax.BeginForm("_ContactUsPartial", "Home",
new AjaxOptions { UpdateTargetId = "result" }))
{
<fieldset>
<legend>Contact Us</legend>
@Html.ValidationSummary(true)
<div id="result"></div>
<div class="editor-label">
@Html.LabelFor(m => m.FullName)
@Html.ValidationMessageFor(m => m.FullName)</div>
<div class="editor-field">@Html.TextBoxFor(m => m.FullName)</div>
<!-- other fields from model -->
<input type="submit" value="Submit"/>
</fieldset>
}
:
@Html.Partial("_ContactUsPartial", new ContactUsViewModel());
My Home Kontrolörü böyle:
Benim Kısmi Görünüm böyledir
[HttpPost]
public ActionResult _ContactUsPartial(ContactUsViewModel viewModel)
{
if (ModelState.IsValid)
{
try
{
//send email
return Content("Thanks for your message!");
}
catch (Exception ex)
{
return Content("Problem sending the email.");
}
}
return Content("oops. invalid model");
}
neler Beklemeyi bekliyorum, sunuma bastığımda denetleyicinin yerleştirilecek bazı metin içeriğini döndürmesi "sonuç" id ile div içinde.
Gerçekte ne oluyor, gönder tuşuna bastığımda, metin içeriği görüntülenen tek şey olan/Home/_ContactUsPartial öğesine yönlendiriliyorsunuz.
Burada neler olup bittiğini anlamıyorum ... ve kendimi sadece bu deliğe daha derin girmeyi bulmak için çevrimiçi örneklere bakmaya çalıştım.
Web.config sayfamda açık javascript etkin değil ve ayrıca jquery.unobtrusive-ajax.min.js dosyasına da başvurum var.
- -jquery.unobtrusive ajax.min.js
- jquery.validate.unobtrusive.min.js
- MicrosoftMvcAjax.js: script'lerime
ben ilgili olabilecek takipçileriniz var klasörü benim _Layout.cshtml etiketinde
ilan aşağıdakilerdir var:
<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 src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/bootstrap.min.js")" type="text/javascript"></script>
ve nasıl çalışır onu var gibi çünkü neyi demetleri
bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
"~/Scripts/jquery-{version}.js"));
bundles.Add(new ScriptBundle("~/bundles/jqueryui").Include(
"~/Scripts/jquery-ui-{version}.js"));
bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
"~/Scripts/jquery.unobtrusive*",
"~/Scripts/jquery.validate*"));
emin değil:
BundleConfig.RegisterBundles(BundleTable.Bundles);
RegisterBundles şuna benzer: Benim Global.asax.cs Application_Start içinde
Bu çizgi var Bu ScriptBundle aracılığıyla bunları getirmek için yapılandırıldı ... ama sonra da el ile _Layout.cshtml ...
kafasında yapılandırılmış var mı? Bununla ilgili bazı yardımları takdir ediyorum!
Tamam, bu, göze çarpmayan kurulum haklarına sahip olmamanın bir sorunu gibi görünüyor. Microsoft.Unobtrusive'libraries'in projeden kaldırıldığından emin oldunuz mu? Bu konuya birkaç kez rastladım ve kütüphane ve bağımlılık konuları oldu. – Nomad101
@ Nomad101 Hayır, bunu yapmadım ...% 100 emin değil nasıl ... – mezoid
Görsel stüdyo ile Nuget kullanıyor musunuz? veya başka bir şey? Ayrıca proje ile paketlemeyi mi uyguluyorsunuz? – Nomad101