在没有 JavaScript 或 JQuery 的情况下单击按钮时重置 @HTML.DropDownList & Table

Reset a @HTML.DropDownList & Table on button click without JavaScript or JQuery

您好,我是 MVC 新手,需要一些帮助。我有一个下拉列表,其中填充了配置中的值。我将在点击提交到 运行 查询时使用此下拉菜单传递一个值,并将数据带回 table。

我需要帮助的地方:

如果用户想要将下拉菜单重置回 "Choose Your Value" 并清除 table 数据以准备 运行 新查询,我希望它们是能够单击 "Clear" 按钮并能够这样做。

我进行了很多搜索并了解了很多有关 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" />

按钮可以调用控制器中的一些代码来清除列表和 table 数据吗?

有空请详细说明。

非常感谢任何帮助。

现在的控制器:

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();
    }

执行此类操作的自然方法是使用客户端代码,您不需要服务器中的任何东西来执行此操作。

使用服务器端代码是一种过大的杀伤力,但简单的方法是重新加载同一页面(默认情况下下拉列表设置为没有选定项目)。

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

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

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

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

同样,这也取决于您获取数据的方式。如果它是一个 Get 请求,在查询字符串中有 dropdown 值,那么这将不起作用。

你必须做的:

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