gpt4 book ai didi

forms - Webmatrix - 从查询字符串更新输入值

转载 作者:行者123 更新时间:2023-12-04 04:32:36 24 4
gpt4 key购买 nike

我有一个非常快速的问题要问你,我想你可以很快回答。
我在我正在构建的网站上有一个搜索页面,它使用查询字符串参数来更改搜索结果。

我还希望任何查询字符串参数反射(reflect)嵌入在同一页面上的搜索表单。它非常适合输入框。例如:

编辑的代码:

var proptype = db.Query("SELECT * FROM Property_Type");

string propertyType = "";

propertyType = Request.QueryString["propertyType"];
<select name="propertytype">
<option value="">Any</option>
@foreach(var type in proptype){
<option value="@type.PropertyTypeID" selected="@(propertyType == type.PropertyTypeID)">@type.PropertyType</option>
}
</select>

谢谢,加文

最佳答案

标记 <option> 的值内<select>作为选择,您使用 selected属性(property)。在最简单的层面上,您可以这样做:

<select name="propertytype">
<option value="">Any</option>
<option value="villa" selected="@(propertyType == "villa")">Villa</option>
<option value="apartment" selected="@(propertyType == "apartment")">Apartment</option>
</select>

这将评估每个测试为真或假(只有一个应该为真),并且 Razor 引擎将写出 selected="selected"在适当的元素上。

不过,您应该考虑您的属性类型是否应该存储在数据库中。您可能应该有一个属性类型表,每个属性都将使用外键链接到适当的一个(或多个)。这也将改变您写出下拉列表的整个方式,实际上在某种程度上简化了它。您的代码将类似于(显然在某种程度上取决于您的数据库架构和字段名称等):
<select name="propertytype">
<option value="">Any</option>
@foreach(var type in propertyTypesQuery)
{
<option value="@type.Id" selected="@(propertyType == type.Id)">@type.Name</option>
}
</select>

从表单元素中获取值的部分可以很简单:
int propertyType = Request.Form["propertytype"].AsInt();

如果未选择任何内容,这会将其设置为零,并且您可以将其用于搜索系统中的“任何”逻辑。

您也可以使用 Html.DropDownList()可以说是更清洁版本的助手。有关示例代码,请参阅 Mike Brind 的文章: http://www.mikesdotnetting.com/Article/196/WebMatrix-jQuery-Cascading-Dropdown-Lists

您在代码中也使用了错误的变量名,您似乎重用了 numBedrooms ,但我怀疑这是复制/粘贴错误。要明确: numBedrooms = Request.QueryString["propertyType"];应该是 propertyType = Request.QueryString["propertyType"]; .

关于forms - Webmatrix - 从查询字符串更新输入值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20329376/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com