C# 在razor if语句中调用javascript函数时出现问题

C# 在razor if语句中调用javascript函数时出现问题,c#,javascript,html,razor,view,C#,Javascript,Html,Razor,View,我想做的是在视图中设置两个选择器框,一个选择器保存不同的配置文件源。第二个保存基于所选源的配置文件名称 我的问题是,我想在数据库中输入一个特定的值,以针对配置文件源进行测试,因此我根据所选的源提取正确的配置文件 这就是我目前的观点: <div class="managerField"> <label for="Source Selector" class="label">Select Source:</label> &l

我想做的是在视图中设置两个选择器框,一个选择器保存不同的配置文件源。第二个保存基于所选源的配置文件名称

我的问题是,我想在数据库中输入一个特定的值,以针对配置文件源进行测试,因此我根据所选的源提取正确的配置文件

这就是我目前的观点:

    <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;
            }
    }

选择来源:
请选择来源
1.
2.
3.
选择配置文件:
@foreach(Model.SocialProfiles.Where中的var p(pr=>pr.SocialProfileTypeID==sourceSelect(SourceSelector))
{
@p、 屏幕名称
}
@节脚本
{
函数源选择(el)
{
如果(el==“”)返回0;//将需要捕获
如果(el=“1”)返回2;
如果(el=“2”)返回6;
如果(el=“3”)返回15;
}
}

任何帮助都将不胜感激。

真恶心,你不能在razor内部调用javascript,我开发了一种通过JS单击调用它的新方法,并废除了razor。

现在运行它时会发生什么?如果你将
return
语句更改为
控制台。log
输出是什么?这是什么d of在我看来很好,所以不清楚问题出在哪里。你是说在脚本标记中,if语句是Razor if而不是javascript if。输出的html是什么(在浏览器中查看源代码)脚本部分?哦,你试图在Razor语句中使用JavaScript函数。那是行不通的。Razor是一个视图引擎。它只是发出文档(HTML、JavaScript等)但它无法访问实际的JavaScript代码。您需要加载这两个列表并更改客户端上的显示,或者进行AJAX调用,以根据第一次选择获得适当的列表。