Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript、Razor、Asp.Net核心:未定义View.Element_Javascript_Asp.net Core_Razor - Fatal编程技术网

Javascript、Razor、Asp.Net核心:未定义View.Element

Javascript、Razor、Asp.Net核心:未定义View.Element,javascript,asp.net-core,razor,Javascript,Asp.net Core,Razor,在我的Asp.Net核心视图的Javascript中,MVC是“View.BestritteneRunden”未定义。在我将它从Asp.NETMVC迁移到Asp.NETCoreMVC之前,它运行良好。我通过研究发现的东西扼杀了我的UI元素。应用程序应该在计时器过期后计算视图上的值。有人能帮我吗 以下是我的观点中的一个片段: @using PlaudertischSoftware.Models; @using DevExtreme.AspNet.Mvc; @using DevExpress.Web

在我的Asp.Net核心视图的Javascript中,MVC是“View.BestritteneRunden”未定义。在我将它从Asp.NETMVC迁移到Asp.NETCoreMVC之前,它运行良好。我通过研究发现的东西扼杀了我的UI元素。应用程序应该在计时器过期后计算视图上的值。有人能帮我吗

以下是我的观点中的一个片段:

@using PlaudertischSoftware.Models;
@using DevExtreme.AspNet.Mvc;
@using DevExpress.Web;
@using DevExtreme.AspNet.Data;

    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
    @model PlauderViewModel
    @section Styles {
        @*<link href="@Url.Content("~/Content/design.css")" rel="stylesheet" type="text/css" />*@
        <link href="~/css/design.css" rel="stylesheet" />
    }
    @{
        ViewBag.Title = "SpielView";
    }
    @using (Html.BeginForm("SpielView", "Plauder", FormMethod.Post))
    {
    <body style="z-index:-5">

        <div class="progress-info">
            <br />
            <span>Runde: <input id="txtRunde" name="BestritteneRunden" type="text" value="@Model.BestritteneRunden" style="width: 15px; border-width: 0px; background:none" />von 10</span>
            <br />
            Übrige Zeit 00:00:<span id="timer">10</span>
        </div>

        <div id="progress-info">
            @(Html.DevExtreme().ProgressBar()
                .ID("progressBarStatus")
                .Min(0)
                .Max(100)
                .Width("100%")
                .Height(50)
                .StatusFormat(new JS("progressBar_statusFormat"))
                .OnComplete("progressBar_onComplete")
                .OnValueChanged("progressBar_valueChanged")
            )
            <div class="form" style="margin-top:-25px">
                @(Html.DevExtreme().Button()
                    .ID("progress-button")
                    .Text("Starten")
                    .Width(120)
                    .OnClick("button_onClick")
                )
            </div>
        </div>
    </body>

        <script>
            var drehen = @Model.Drehrichtung;

            var seconds = 10,
                inProgress = false;

            window.intervalId = window.intervalId || null;

            function timer(){
                seconds--;
                setCurrentStatus();
                if (seconds === 0) {
                    clearInterval(intervalId);
                    seconds = 10;
                    return;
                }
            }

            function setCurrentStatus() {
                $("#progressBarStatus").dxProgressBar("option", "value", (10 - seconds) * 10);
                $("#timer").text(("0" + seconds).slice(-2));
            }

            function progressBar_statusFormat(value) {
                return;
            };

            function progressBar_onComplete(e) {
                inProgress = false;
                $("#progress-button").dxButton("option", "text", "Stoppen");

                e.element.removeClass("complete");


                //Daten zum Controller senden und auswerten
                $.ajax({
                    type: "POST",
                    url: "TimerStopped",
                    dataType: "json",
                    data: $('form').serialize(),
                    success: function (view) {

                $("#txtRunde").attr("value", view.BestritteneRunden);


                        if (view.BestritteneRunden < 11) {
                            button_onClick(e);
                        }
                        else {
                            location.replace("AuswertungsView");
                        }
                        $("#slider-value").dxNumberBox("instance").option("value", 0);},
                    error: function (result) {
                        alert(result.text);
                    }
                });
            };

            function button_onClick(e) {
                    clearInterval(intervalId);

                    $("#progressBarStatus").removeClass("complete");

                    if (inProgress) {
                        e.component.option("text", "Fortsetzen");
                        clearInterval(intervalId);
                    } else {
                        e.component.option("text", "Stoppen");
                        setCurrentStatus();
                        intervalId = setInterval(timer, 1000);
                    }

                inProgress = !inProgress;
            };

        </script>
    }
@使用PlaudertischSoftware.Models;
@使用DevExtreme.AspNet.Mvc;
@使用DevExpress.Web;
@使用DevExtreme.AspNet.Data;
@模型PlauderViewModel
@剖面样式{
@**@
}
@{
ViewBag.Title=“SpielView”;
}
@使用(Html.BeginForm(“SpielView”、“Plauder”、FormMethod.Post))
{

伦德:冯10
Übrige Zeit 00:00:10 @(Html.DevExtreme().ProgressBar()) .ID(“progressBarStatus”) .Min(0) .最大值(100) .宽度(“100%”) .身高(50) .StatusFormat(新JS(“progressBar\U StatusFormat”)) .OnComplete(“progressBar\u OnComplete”) .OnValueChanged(“progressBar\u valueChanged”) ) @(Html.DevExtreme().Button()) .ID(“进度按钮”) .文本(“Starten”) .宽度(120) .OnClick(“按钮”\u OnClick”) ) var drehen=@Model.Drehrichtung; var秒=10, inProgress=假; window.intervalId=window.intervalId | | null; 函数计时器(){ 秒--; setCurrentStatus(); 如果(秒===0){ clearInterval(intervalId); 秒=10; 返回; } } 函数setCurrentStatus(){ $(“#progressBarStatus”).dxProgressBar(“选项”,“值”,“10秒)*10); $(“#计时器”).text(((“0”+秒).slice(-2)); } 函数progressBar\u状态格式(值){ 返回; }; 功能进度条(未完成)(e){ inProgress=假; $(“#进度按钮”).dxButton(“选项”、“文本”、“停止”); e、 元素。removeClass(“完整”); //Daten zum控制器senden和auswerten $.ajax({ 类型:“POST”, 网址:“TimerStopped”, 数据类型:“json”, 数据:$('form')。序列化(), 成功:功能(视图){ $(“#txtRunde”).attr(“value”,view.BestritteneRunden); 如果(view.BestritteneRunden<11){ 按钮点击(e); } 否则{ 位置。更换(“AuswertungsView”); } $(“#滑块值”).dxNumberBox(“实例”).option(“值”,0);}, 错误:函数(结果){ 警报(result.text); } }); }; 功能按钮点击(e){ clearInterval(intervalId); $(“#progressBarStatus”).removeClass(“完成”); 如果(正在进行){ e、 选项(“文本”、“Fortsetzen”); clearInterval(intervalId); }否则{ e、 组件。选项(“文本”、“停止”); setCurrentStatus(); intervalId=设置间隔(计时器,1000); } inProgress=!inProgress; }; }
在我的Asp.Net核心视图的Javascript中,MVC是“View.BestritteneRunden”未定义

该问题可能是由于对所有JSON属性名称使用camel大小写造成的

如果检查返回的数据
视图
,它可能看起来像
bestritteneRunden:10
,而不是
bestritteneRunden:10

要修复它,可以使用
view.bestritteneRunden
修改js代码

$("#txtRunde").attr("value", view.bestritteneRunden);
或者将
PropertyNamingPolicy
设置为
null

services.AddControllersWithViews()
    .AddJsonOptions(options =>
    {
        options.JsonSerializerOptions.PropertyNamingPolicy = null;
    });

能否显示API代码(“TimerStopped”)?将PropertyNamegPolicy设置为Null修复了它。非常感谢你!