c# - 选择静态选择列表的值

标签 c# asp.net-mvc

在我的主页上,我有一个搜索表单,人们可以在其中搜索房屋。它重定向到 Controller 和 Action ,搜索房屋并在 View 中显示它们。

在结果 View 中,我有几个这样的列表。

<select name="priceFrom">
    <option value="0">€0</option>
    <option value="100000">€100.000</option>
    <option value="200000">€200.000</option>
</select>

View 包含一个模型:@model Irrelevant.Namespace.ViewModels.SearchResults

我想选择他们在主页上选择的值,它存储在 SearchResults ViewModel 中。在 WebForms 中,我曾经执行 Bind()Eval(),MVC 中是否有任何等效项提供了一种干净的方法来完成此操作?

最佳答案

SelectListItem有一个 Selected属性(property),将受到Html.DropDownListFor<>()的尊重.

如果您手动声明 selects 的标记,您最终会得到一个功能强大但不够优雅的解决方案,例如:

<select name="priceFrom">
    <option value="0">€0</option>
    <option value="100000" @(Model.SomeCondition ? "selected" : "" )>€100.000</option>
    <option value="200000" @(Model.SomeCondition ? "selected" : "" )>€200.000</option>
</select>

请记住,selected 的存在属性可能会导致用户代理将其视为“真”。

理想情况下,您的所有下拉列表都将从您的 View 模型生成。创建 View 模型时,您将评估先前的条件(例如另一页上的选择)并设置 Selected在适当的项目上。

关于c# - 选择静态选择列表的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15314075/

相关文章:

C# 继承类列表

java - 使用 UTF-16LE 编码和 Apache Commons IO 读写文本文件

c# - 如何使用 Entity Framework 更新数据库而无需迁移历史记录

javascript - 结合 MicrosoftMvcJQueryValidation 和 Ajax 提交

c# - 无法上传 Ppt 并在 IIS 服务器中读取

c# - 为什么我不能在通用 IEnumerable 对象上调用 ToArray?

C# 作为带有泛型但不相关 <T> 的类型的运算符

c# - YouTube API 集成 ASP.NET - 使用单个页面上传视频

mysql - 当我尝试使用 MySQL 中的身份存储注册用户时出错

mysql - Asp.Net MVC UNitOfWork 和 MySQL 以及休眠连接