重置@ HTML.DropDownList&没有JavaScript或JQuery的按钮单击表

时间:2017-09-06 16:05:54

标签: html asp.net-mvc asp.net-mvc-4 html.dropdownlistfor

嗨,我需要一些帮助,因为我是MVC的新手。我有一个下拉列表,其中填充了配置中的值。我将使用此下拉列表在按下提交以运行查询并将数据恢复到表中时传递值。

我需要帮助的地方:

如果用户想要将下拉菜单重置为"选择您的价值"并清除准备运行新查询的数据表,我希望他们能够点击"清除"按钮,并能够这样做。

我搜索了很多并且学到了很多关于JavaScript的方法,但是我想使用.NET和MVC。

这是我的下拉代码:

@{
  ViewBag.Title = "Index";
 }
 @Html.DropDownList("YourElementName", 
 (IEnumerable<SelectListItem>)ViewBag.DropdownVals, "--Choose Your Value--", 
 new {

        //size = "5",
        style = "width: 600px"

        }

我有一个这样的按钮:

<input id="Button2" type="button" value="Clear" />

按钮是否可以调用控制器中的某些代码来清除列表和表数据?

如果您有时间,请详细说明。

非常感谢任何帮助。

现在的控制器:

public ActionResult Index()
    {
        //ViewBag.Message = "Modify this template to jump-start your ASP.NET MVC application.";

        string[] values = (ConfigurationManager.AppSettings["DropdownValues"]).Split(',').Select(sValue => sValue.Trim()).ToArray();
        List<SelectListItem> dropDowns = new List<SelectListItem>();
        for (int i = 0; i < values.Length; i++)
        {
            dropDowns.Add(new SelectListItem { Text = values[i], Value = values[i] });
        }
        ViewBag.DropdownVals = dropDowns;


        return View();
    }

2 个答案:

答案 0 :(得分:2)

您只需重新加载页面即可将下拉列表和页面设置为默认值。

<input id="Button2" type="button" value="Clear" onclick="window.location.reload()" /> 

同样,这也取决于您如何获取数据。如果它是查询字符串中Get值为dropdown的{​​{1}}请求,则此操作无效。

您必须这样做:

<input id="Button2" type="button" value="Clear" onclick="location.href='@Url.Action("Index", "ControllerName")'" /> 

答案 1 :(得分:1)

执行类似操作的自然方式是使用客户端代码,服务器中不需要执行此操作。

使用服务器端代码是一种过度杀伤,但简单的方法是重新加载同一页面(默认情况下设置下拉列表而不选择任何项目。)

对于简单的javascript方式,而不是重新加载页面:

<input id="Button2" type="button" value="Clear" onclick="document.getElementById('YourElementID').value=''" />