【发布时间】:2013-12-20 17:04:38
【问题描述】:
我想做的是我在一个视图中设置了 2 个选择器框,一个选择器包含我不同的配置文件源。第二个包含基于您选择的来源的配置文件名称。
我的问题是我希望将某个值放入数据库中以针对配置文件源进行测试,因此我根据选择的源提取正确的配置文件。
这是我目前的视图:
<div class="managerField">
<label for="Source Selector" class="label">Select Source:</label>
<select name="SourceSelector" form="PostScheduler" class="select-style" onchange="sourceSelect(this.value)">
<option value="" selected>Please Select Source</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
</div>
<div class="managerField">
<label for="ProfileSelector" class="label">Select Profile:</label>
<!-- POPULATE BASED ON SOURCE SELECTED -->
<select name="Profile Selector" class="select-style">
@foreach (var p in Model.SocialProfiles.Where(pr => pr.SocialProfileTypeID == sourceSelect(SourceSelector))
{
<option value="@p.SocialProfileID">@p.ScreenName</option>
}
</select>
</div>
@section Scripts
{
<script type="text/javascript">
function sourceSelect(el)
{
if (el == "") return 0; // Will need to catch
if (el == "1") return 2;
if (el == "2") return 6;
if (el == "3") return 15;
}
}
任何帮助将不胜感激。
【问题讨论】:
-
现在运行它会发生什么?如果将
return语句更改为console.log,输出是什么?这种对我来说看起来很好,所以不清楚问题是什么。 -
您是说在您的脚本标签中您的 if 语句是 Razor if 而不是 javascript if。脚本部分的输出html(在浏览器中查看源代码)是什么?
-
哦,您正在尝试在 Razor 语句中使用 JavaScript 函数。那是行不通的。 Razor 是一个视图引擎。它只是发出文档(HTML、JavaScript 等),但无法访问实际的 JavaScript 代码。您需要加载两个列表并更改客户端上的显示,或者进行 AJAX 调用以根据所做的第一个选择获取适当的列表。
标签: c# javascript html razor view