【发布时间】:2008-11-04 20:38:11
【问题描述】:
我正在为一个新项目尝试 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 帮助程序没有选择检查状态。
我在使用列表框、dropdownlist 和单选按钮时遇到了这个问题。文本框可以很好地获取值。你看到我做错了什么吗?我假设助手会为我做这件事,但也许我只需要自己处理这件事。我只是在摸索,所以感谢您的意见。
编辑:我刚刚找到了 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>
希望有人会想出另一种方法。
【问题讨论】:
-
自正式发布以来,我还没有看到任何类似的问题。这可能与测试版有关,或者我做错了什么。无论如何,我认为这个问题不再相关。
标签: asp.net-mvc ui-helper