我是一名桌面开发人员,我正在用 C# 自学 ASP.NET MVC3(还不能使用 MVC4 ......)。出于这个原因,我将一些小的虚拟项目放在一起。在这个项目中,我使用了带有电影类别的 DropDownListFor(我们都知道这个例子对吧?)。但是由于本教程进行得太快,我正在尝试做一些更简单的事情。
我的模型:
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 在部分视图中向用户显示它选择的类别的 ID……因为我没有让它工作,所以我开始的时候更小了。现在忘记DrowpdownList。我现在只有这个按钮:
<input type="button" value="Minicart test" onclick="categoryChosen();" />
这个div:
<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?然后我可以继续自学这些东西。非常感谢您的帮助。如果您错过任何类型的信息,请随时询问。