我使用过Webform DropDownList,发现MVC下拉列表很容易让人困惑:
问题:
答案 0 :(得分:0)
您必须记住,您可以在ASP.NET MVC中执行所有可以在ASP.NET MVC中执行的操作。唯一的区别是到达那里的过程。这是你的问题的答案:
以下是代码示例:
<强>控制器:强>
public class HomeController : Controller
{
public ActionResult DropExample()
{
var fruits = new List<SelectListItem>();
fruits.Add(new SelectListItem { Text = "Orange", Value = "1" });
fruits.Add(new SelectListItem { Text = "Banana", Value = "2" });
fruits.Add(new SelectListItem { Text = "Grapes", Value = "3" });
ViewBag.Fruits = fruits;
return View();
}
public JsonResult GetJsonData(string value,string text)
{
System.Diagnostics.Debugger.Break();
string message = String.Format("You have selcted - {0}({1}).This is from the server...",text,value);
return Json(new {Message = message }, JsonRequestBehavior.AllowGet);
}
}
查看:强>
<script src='http://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js' type="text/javascript"></script>
<script type="text/javascript">
$(function () {
$('#fruit').change(function () {
var value = $(this).val();
var text = $(this).find("option:selected").text();
var message = "You selcted - " + text + "(" + value + ").Now let's notify the server...";
alert(message);
$.getJSON("/Home/GetJsonData?value=" + value + "&text=" + text, null, function (data) {
$("#result").empty();
$("#result").html(data.Message);
});
});
});
</script>
@Html.DropDownList("fruit", ViewBag.Fruits as List<SelectListItem>)
<div id="result"></div>
在ASP.NET Web表单中,我们被服务器端事件和控件所破坏,以便快速开发应用程序,但每当我们需要稍微改变事件或控件的外观和行为方式时,我们就会遇到困难在MVC中我们没有这个问题,因为我们可以完全控制生成的HTML,看起来好像很多工作起初以MVC方式做事,但是当你收到它时,它有很大的好处。来自客户的定制要求。这是MVC如此受欢迎的主要原因之一