C# 如何从使用Html.DropDownList()创建的SELECT中删除选择?

C# 如何从使用Html.DropDownList()创建的SELECT中删除选择?,c#,asp.net-mvc,C#,Asp.net Mvc,我以这种方式创建了一个SELECT: Html.DropDownList("name", new SelectList(ViewBag.Cities, "Id", "Name"), "(select a city)"); 我知道正确的方法是使用模型传递数据并创建SelectList服务器端,但这是目前的情况。 需要明确的是,页面根本不使用模型。 视图的作用是返回this.View(“MyView”) ASP.Net引擎在回发上自动维护选择。 页面中有一个“重置”按钮,控制器将表单中使用的字段(

我以这种方式创建了一个SELECT:

Html.DropDownList("name", new SelectList(ViewBag.Cities, "Id", "Name"), "(select a city)");
我知道正确的方法是使用模型传递数据并创建SelectList服务器端,但这是目前的情况。 需要明确的是,页面根本不使用模型。 视图的作用是
返回this.View(“MyView”)

ASP.Net引擎在回发上自动维护选择。
页面中有一个“重置”按钮,控制器将表单中使用的字段(数据通过ViewBag传递)设置为默认值

问题是我不知道如何以简单的方式删除下拉列表的选择。 我想我可以在ViewBag中使用SelectedCity属性并更改如下代码:

Html.DropDownList("name", new SelectList(ViewBag.Cities, "Id", "Name", ViewBag.SelectedCity), "(select a city)");
但是:

  • 我尝试使用“null”
    (新的选择列表(ViewBag.Cities,“Id”,“Name”,null))
    ,但它不起作用
  • 我不想引入新的变量
  • 谢谢,
    Alex

    您可以使用以下内容:

    <%:Html.Label("Poste :")%><%: Html.DropDownListFor(model => model.SelectedPoste, Model.PostesItems, new { @id = "poste", @onchange = "test3()" })%>
    
    model.SelectedPoste,model.posteItems,new{@id=“poste”,“onchange=“test3()”})%>
    
    在函数(本例中为test3)中添加重置、删除等代码


    .

    您可以使用以下内容:

    <%:Html.Label("Poste :")%><%: Html.DropDownListFor(model => model.SelectedPoste, Model.PostesItems, new { @id = "poste", @onchange = "test3()" })%>
    
    model.SelectedPoste,model.posteItems,new{@id=“poste”,“onchange=“test3()”})%>
    
    在函数(本例中为test3)中添加重置、删除等代码


    .

    如果您通过提交表单帖子进行重置,但仍在同一视图中返回该操作的相同“模型”,请尝试在代码后添加以下行:

    ModelState.Clear();
    

    如果您正在通过提交表单帖子进行重置,但仍在同一视图的该操作上返回相同的“模型”,请尝试在代码后添加以下行:

    ModelState.Clear();
    

    您是否通过表单提交帖子进行“重置”?或者您是如何做到的?您有一个重置按钮,可以将所有控件设置为默认值或从服务器清空。那么问题在哪里呢?您可以在那里再次绑定
    ViewBag.Cities
    ,这样当页面重新加载时,它将使用默认值再次绑定。重置由POST完成(页面包含一个带有submit=“reset”的按钮)。该事件由
    此.Request.Form[“reset”]!=null
    。在“重置”事件(服务器端)上,ViewBag.Cities从零开始加载(实际上是对存储库的新请求),但DropDownList会维护选择(这就是ASP.Net的工作方式,ViewState不知道该集合已重新加载且选择已“重置”)。您是否通过表单提交帖子进行“重置”?或者您是如何做到的?您有一个重置按钮,可以将所有控件设置为默认值或从服务器清空。那么问题在哪里呢?您可以在那里再次绑定
    ViewBag.Cities
    ,这样当页面重新加载时,它将使用默认值再次绑定。重置由POST完成(页面包含一个带有submit=“reset”的按钮)。该事件由
    此.Request.Form[“reset”]!=null
    。在“重置”事件(服务器端)上,ViewBag.Cities从零开始加载(实际上是对存储库的新请求),但DropDownList会维护选择(ASP.Net就是这样工作的,ViewState不知道集合选项已重新加载且选择已“重置”)。该页根本没有使用模型。该页根本没有使用模型。该页根本没有使用模型。是。我举了一个例子。并将源代码添加到我复制的代码中的页面。只是为了帮助这个家伙。这个页面根本没有使用模型。是的。我举了一个例子。并将源代码添加到我复制的代码中的页面。只是为了帮助这个家伙。