我正在为一个新项目尝试 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>
当表单被发回时,我构建了一个带有“ProviderType”的对象作为它的属性之一。对象上的值被设置,然后我 RedirectToAction 以提供者作为参数。一切都很好,我最终得到了一个像“ http://localhost/Provider/List?ProviderType=1 ”这样的 URL,其中显示了 ProviderType。该值被持久化到 URL,但 UI 帮助程序没有选择检查状态。
我在列表框、下拉列表和单选按钮方面遇到了这个问题。文本框可以很好地获取值。你看到我做错了什么吗?我假设助手会为我做这件事,但也许我只需要自己处理这件事。我只是在摸索自己的方式,因此感谢您的意见。
编辑:我刚刚找到了 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>
希望有人会想出另一种方法。