Я разработчик настольных компьютеров, и я преподаю себе ASP.NET MVC3 с C# (не могу использовать MVC4 еще ...). По этой причине я похлопываю по небольшим манекенам. В этом проекте я использую DropDownListFor с категориями фильмов (все мы знаем этот пример правильно?). Но потому, что этот урок прошел слишком быстро, я пытаюсь сделать что-то более простое.Render Partial View from JQuery
My Model:
public class MovieModel {
public int SelectedCategorieID { get; set; }
public List<CategorieModel> Categories { get; set; }
public MovieModel() {
this.SelectedCategorieID = 0;
this.Categories = new List<CategorieModel>() {new CategorieModel {ID = 1,
Name = "Drama"},
new CategorieModel {ID = 2,
Name = "Scifi"}};
}
}
public class CategorieModel {
public int ID { get; set; }
public string Name { get; set; }
}
См? Очень просто. У меня сильно типизированных, в котором я могу использовать эту модель:
@model MvcDropDownList.Models.MovieModel (1st line of Index.cshtml).
модель заполняется, когда действие по умолчанию Home контроллера называется:
public ActionResult Index() {
ViewBag.Message = "Welcome to ASP.NET MVC!";
Models.MovieModel mm = new Models.MovieModel();
return View(mm);
}
До сих пор так хорошо. Нет проблем. Теперь я хочу показать пользователю идентификатор категории, которую он выбрал в частичном представлении с ненавязчивым ajax ... Потому что я не получил его на работу, я начал еще меньше. Забудьте о DrowpdownList пока. Все, что я на данный момент эта кнопка:
<input type="button" value="Minicart test" onclick="categoryChosen();" />
И это Див:
<div id="minicart">
@Html.Partial("Information")
</div>
мини корзина материал из другого урока, я извиняюсь. Не позволяйте этому отвлекать вас, пожалуйста.
Это JavaScript:
function categoryChosen() {
var url = "Home/CategoryChosen/" + "2";
$.post(url, function (data) {
debugger;
$("#miniCart").html(data);
});
}
2-действительно твердый, с моей предыдущей попытки заставить его работать. В конце концов, я хочу, чтобы быть переменной ... конечно
Что вызывает это действие:
[AcceptVerbs("POST")]
public ActionResult CategoryChosen(string SelectedCategorieID) {
ViewBag.messageString = "2";
return PartialView("Information");
}
Да, и вы видите, что правильно. Я просто вставляю 2 для своего теста. Потому что, как я уже сказал, не может заставить его работать. Частичный вид информации выглядит так:
@{
ViewBag.Title = "Information";
}
<h2>Information</h2>
<h2>You selected: @ViewBag.messageString</h2>
Итак, теперь для большого вопроса. Я ожидал, что частичное представление будет показано: «Вы выбрали: 2». Я даже вижу это, когда отлаживаю javascript и смотрю, что внутри переменной «данные». Может ли кто-нибудь помочь мне, почему он не отображает 2? Затем я могу продолжить обучение этому. Большое вам спасибо за помощь. Если вы пропустите какую-либо информацию, не стесняйтесь спрашивать.
Я бы использовал интегрированную функциональность MVC-Ajax. Взгляните на Ajax.Beginform и ненавязчивый аякс. Мне нравится этот урок http://www.asp.net/mvc/tutorials/older-versions/javascript/creating-a-mvc-3-application-with-razor-and-unobtrusive-javascript –
Спасибо за ссылку. –