我在这里遇到了一些麻烦,希望有人可以提供帮助:
我在 razor 脚本和 onChange 中动态填充一个 html 选择元素,我希望得到这个发布的值。它在页面刷新时回发,但我似乎没有得到选择的价值;我知道的原因是我正在传递一个类别并对其进行过滤。当我手动更改 URL 中的查询字符串并将其发布时,此过滤将起作用。
剃刀脚本:
@using umbraco.MacroEngines
@inherits DynamicNodeContext
@{
dynamic rootNode = @Model.NodeById(1066);
DynamicNodeList list = rootNode.Descendants();
List<dynamic> categories = new List<dynamic>(list.Cast<dynamic>());
List<string> alias = new List<string> { "GeneralPage" };
var filtered = categories.Where(n => alias.Contains(n.NodeTypeAlias));
}
<form method="post" action="">
<select id="selectCategory" name="selectCategory" onchange="this.form.submit(); alertMe(selectCategory)">
@foreach (var node in filtered)
{
<option value="@node.Name">@node.Name</option>
}
</select>
</form>
<script type="text/javascript">
function alertMe(selectCategory) {
alert(selectCategory)
}
</script>
您会注意到我有一个提醒所选值的功能,但这会以 [object HTMLSelectElement] 的形式返回
如果需要,我可以发布更多代码以显示服务器上发生的情况,但正如我所说的过滤确实有效,但是我正在尝试通过以下方式捕获值:
string category = Request["selectCategory"];
if (category != null)
{
非常感谢任何帮助。谢谢