我在这里遇到一些麻烦,希望有人可以提供帮助:
我在razor脚本和onChange中动态填充html select元素我希望获得此发布值。 当页面刷新时它会回发,但我似乎没有得到select的值;我知道的原因是我正在传递一个类别并对其进行过滤。当我手动更改URL中的查询字符串并将其发布时,此过滤功能正常工作。
Razor Script:
@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)
{
任何帮助非常感谢。 感谢
答案 0 :(得分:1)
尝试:
ViewContext.RouteData.Values["selectCategory"]
对于javascript,您将dom引用传递给选择列表,而不是所选项目。如果要查看它的值,则需要使用
alert(selectCategory.value)