C# DropdownList在MVC中是如何工作的?
我使用过Webform DropDownList,发现MVC DropDownList有点令人困惑: 问题:C# DropdownList在MVC中是如何工作的?,c#,asp.net,asp.net-mvc,drop-down-menu,webforms,C#,Asp.net,Asp.net Mvc,Drop Down Menu,Webforms,我使用过Webform DropDownList,发现MVC DropDownList有点令人困惑: 问题: 让MVC dropdownlist为indexchange列出服务器端事件,然后选择EditemChange作为WebForms 如何在控制器中获取dropdownList selecteditems的文本和值(据我所知,我只能在控制器中获取选定值,而不能获取文本) 您必须记住,在ASP.NET web窗体中可以执行的所有操作都可以在ASP.NET MVC中执行。唯一的区别是到达
- 让MVC dropdownlist为indexchange列出服务器端事件,然后选择EditemChange作为WebForms
- 如何在控制器中获取dropdownList selecteditems的文本和值(据我所知,我只能在控制器中获取选定值,而不能获取文本)
您必须记住,在ASP.NET web窗体中可以执行的所有操作都可以在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>
公共类HomeController:控制器
{
公共行动结果示例()
{
var fruits=新列表();
添加(新的SelectListItem{Text=“Orange”,Value=“1”});
添加(新的SelectListItem{Text=“Banana”,Value=“2”});
添加(新的SelectListItem{Text=“Grapes”,Value=“3”});
ViewBag.Fruits=水果;
返回视图();
}
公共JsonResult GetJsonData(字符串值、字符串文本)
{
System.Diagnostics.Debugger.Break();
string message=string.Format(“您已选择-{0}({1})。这是来自服务器…”,文本,值);
返回Json(新的{Message=Message},JsonRequestBehavior.AllowGet);
}
}
查看:
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>
$(函数(){
$('#fruit').change(函数(){
var值=$(this.val();
var text=$(this).find(“选项:选定”).text();
var message=“您选择了-“+text+”(“+value+”)。现在让我们通知服务器…”;
警报(信息);
$.getJSON(“/Home/GetJsonData?value=“+value+”&text=“+text,null,函数(数据){
$(“#结果”).empty();
$(“#结果”).html(data.Message);
});
});
});
@Html.DropDownList(“水果”,ViewBag.Fruits作为列表)
在ASP.NET web窗体中,为了快速开发应用程序,服务器端的事件和控件被破坏了,但每次我们需要稍微更改事件或控件的外观和行为时,都会遇到麻烦。在MVC中,我们没有这个问题,因为我们完全控制了HTML生成后,一开始用MVC的方式做事情似乎要做很多工作,但当你从客户那里收到非常定制的需求时,它会带来巨大的好处。这就是MVC如此受欢迎的主要原因之一文本独特吗?如果是这样,是否可以将值字段设置为文本?A
提交其所选
元素的值。如果要提交“丹麦”或“Sverig”等,请将SelectListItem
的Value
属性设置为-newselectListItem{Text=“Danmark”,Value=“Danmark”},
等非常有趣-1-但是您的代码中写有“ViewBag.Fruits as List”,这是必要的。我认为从视图对象自动加载数据的下拉列表-2-您已经创建了一个函数-publicJSONResult GetJsonData(字符串值,字符串文本),我们如何使用它在页面上显示数据或保存在数据库中?现在,您的Javascript在站点上显示数据。在你回答之后,我结束这个问题。我不会为你写所有的代码。我已经回答了你的问题,并向你展示了代码示例。如果你想知道如何在数据库中插入值,那么先用谷歌搜索它,然后自己努力找出答案。只有当你做起来有问题时,才在堆栈上问一个新问题过度担忧。。现在我明白你的代码了。我现在知道如何将数据保存到数据库。但你可以告诉我为什么要写ViewBag.Frients作为列表。。。为什么是nessery?这只是MVC中绑定下拉列表的一种方法。您不必这样做。您可以创建一个模型并将其传递给视图,然后将模型上的属性绑定到下拉列表。有关绑定到MVC中下拉列表的各种方法,请参阅本文-