asp.net mvc单选按钮状态

Jos*_*ush 13 asp.net-mvc ui-helper

我正在尝试使用asp.net mvc进行一个新项目,我遇到了一些奇怪的事情.当我为文本框使用MVC UI助手时,值会在调用之间保持不变.但是,当我使用一系列单选按钮时,检查状态不会持续存在.

以下是我看来的一个例子.

<li>
        <%=Html.RadioButton("providerType","1")%><label>Hospital</label>
        <%=Html.RadioButton("providerType","2")%><label>Facility</label>
        <%=Html.RadioButton("providerType","3")%><label>Physician</label>
</li>
Run Code Online (Sandbox Code Playgroud)

当表单被发回时,我构建了一个"ProviderType"作为其中一个属性的对象.对象的值已设置,然后我将RedirectToAction与提供程序一起作为参数.一切都很好,我最终得到一个URL,如" http:// localhost/Provider/List?ProviderType = 1 ",显示ProviderType.该值将持久保存到URL,但UI帮助程序未获取已检查状态.

我遇到了listbox,dropdownlist和radiobutton 这个问题.文本框可以很好地获取值.你看到我做错了吗?我假设帮助者会为我做这件事,但也许我只需要自己照顾这个.我只是感觉自己的方式,所以你的意见是赞赏的.

编辑:我刚刚找到了SelectList构造函数的覆盖,它取一个选定的值.这照顾了我上面提到的下拉问题.

编辑#2:我发现了一些有效的东西,但这样做让我很难受.我觉得应该推断出来.

<li>
  <%=Html.RadioButton("ProviderType","1",Request["ProviderType"]=="1")%><label>Hospital</label>
  <%=Html.RadioButton("ProviderType", "2", Request["ProviderType"] == "2")%><label>Facility</label>
  <%=Html.RadioButton("ProviderType", "3", Request["ProviderType"] == "3")%><label>Physician</label>
</li>
Run Code Online (Sandbox Code Playgroud)

希望有人能想出另一种方式.

Dav*_*ner 7

如果给单选按钮的名称与模型上的属性相同,则MVC将自动在相应的按钮上设置checked属性.

我认为这依赖于强类型模型.


Haa*_*ked 2

表单不应发布到查询字符串,除非您忘记将表单指定为 method="POST"。您如何指定表格?您使用的是 ASP.NET MVC Beta 吗?