Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# asp.net mvc应用程序中的事件_C#_Javascript_Asp.net Mvc 3 - Fatal编程技术网

C# asp.net mvc应用程序中的事件

C# asp.net mvc应用程序中的事件,c#,javascript,asp.net-mvc-3,C#,Javascript,Asp.net Mvc 3,控制器 IEnumerable<SelectListItem> process = from proc in XDocument.Load("Processes.xml").Descendants("Process") select new SelectListItem { Text = (string)proc.Element("ConfigFile")

控制器

 IEnumerable<SelectListItem> process = 
    from proc in         
        XDocument.Load("Processes.xml").Descendants("Process")  
          select new SelectListItem
          {
              Text = (string)proc.Element("ConfigFile")
          };
    ViewBag.process = process;
IEnumerable进程=
从proc-in
XDocument.Load(“processs.xml”).substands(“Process”)
选择新的SelectListItem
{
Text=(字符串)proc.Element(“配置文件”)
};
ViewBag.process=进程;
看法

@Html.DropDownList(“过程”)

我想处理下拉列表中所选项目的事件 我在谷歌上搜索了一下,人们说没有像普通ASP或WinForm应用程序那样的常规事件处理程序


我不熟悉javascript和jquery,但我能理解一个代码,您可以将此下拉列表放入表单中,使用javascript订阅其
onchange
事件并手动提交此表单:

@using (Html.BeginForm("SomeAction", "SomeController"))
{
    @Html.DropDownList("process", Model.Items, new { onchange = "this.form.submit();" })
}
这会将所选值发布到SomeAction,您可以在其中检索它:

[HttpPost]
public ActionResult SomeAction(string process)
{
    // the process argument will contain the selected value from the dropdown
    ...
}

定义“正常”-HTTP是一种无状态请求/响应机制。ASP.NET MVC对于HTTP来说比ASP WebForms更“正常”-这是一个漏洞抽象,使web开发更像WinForms开发。谢谢Darin,非常整洁@使用(Html.BeginForm(“SomeAction”,“SomeController”))一些控制器我会给它我的控制器名称对吗?在PublicActionResult SomeAction(字符串进程)中,此方法是否必须具有返回类型?实际上,我想打开一个带有文本框的新页面,以响应选择的dropdownlist项是的,您应该给出控制器名称。因此,例如,如果您有一个名为
HomeController
的控制器,您将通过
Home
。当然,您的操作应该返回ActionResult,所有控制器操作都会返回。“System.Web.Mvc.HtmlHelper”不包含“DropDownList”的定义和“System.Web.Mvc.Html”的最佳扩展方法重载。SelectExtensions.DropDownList(System.Web.Mvc.HtmlHelper,string,string)”有一些无效参数我在@Html.DropDownList(“process”)上遇到此错误,new{onchange=“this.form.submit();”})我已经更新了我的答案。您应该将可用项作为第二个参数传递给
DropDownList
帮助程序。如果您使用的是ViewBag或ViewData,您还可以指定:
@Html.DropDownList(“process”,(IEnumerable)ViewBag.process,new{onchange=“this.form.submit();”})
,但使用强类型视图模型会更好。
[HttpPost]
public ActionResult SomeAction(string process)
{
    // the process argument will contain the selected value from the dropdown
    ...
}