我正在尝试从 javascript 函数中为表单上的组合框的内容分配一个 razor 变量。像这样:

<script type ="text/javascript">
<!--
    function SomeFunction() {

        var hours = document.getElementById("Hours");
        var task = document.getElementById("TaskType_ID");
        @{
            var tsk = @:task.value;
         }

        @{
        <text>
            hours.value = '@ViewBag.TaskTypes.GetHours(tsk)';
        </text>
        }

        return true;
    }

//-->
</script>

线路(以及我尝试过的所有其他变体)
var tsk = @:task.value;

导致错误。

最佳答案

正如 Chris 指出的那样,您正在混合客户端和服务器代码。 javascript是客户端代码,你需要来自服务器的数据通过ajax调用函数(get/post)返回你想要的值。以下是您可以对其采取的措施的片段代码:

$("#tasks").change(function(){
    $.get('url',$(this).val(), function(data){
        // data is the hours returned from the selected task
        $("#hours").val(data);
    });
});

或者,您可以始终将任务的值存储在变量中,而不是每次选择任务时都调用服务器。谢谢

关于javascript - 在 javascript 中设置 Razor 变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6500941/

10-12 12:25
查看更多