Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/336.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中ASP核心属性的奇怪行为_Javascript_C#_Asp.net_Frontend_Backend - Fatal编程技术网

Javascript中ASP核心属性的奇怪行为

Javascript中ASP核心属性的奇怪行为,javascript,c#,asp.net,frontend,backend,Javascript,C#,Asp.net,Frontend,Backend,我在ASP核心和Javascript方面遇到了一个奇怪的问题,并且找不到任何答案 我正在使用的网站的索引页从控制器接收一个ViewModel,其中包含两个属性。一个名为“testID”,另一个名为“test”。两者都有完全相同的信息,一个ID字符串 C#: 现在,在我的Razor页面上,我在标记上设置了一个onClickTest()方法: <a href="#" onclick="onClickTest();"> Click Here <

我在ASP核心和Javascript方面遇到了一个奇怪的问题,并且找不到任何答案

我正在使用的网站的索引页从控制器接收一个ViewModel,其中包含两个属性。一个名为“testID”,另一个名为“test”。两者都有完全相同的信息,一个ID字符串

C#:

现在,在我的Razor页面上,我在标记上设置了一个onClickTest()方法:

<a href="#" onclick="onClickTest();"> Click Here </a>

正如您可以从上面的代码(Javascript)中看到的那样,打印“test”属性的行按预期工作,但名为“testid”的属性则不工作。打印“未定义”

然后,如果我去掉名称中的“id”部分或将其更改为其他内容(上面没有“id”一词),它就可以正常工作! 所以它一定和名字有关

现在,如果站点正在运行,并且我打开浏览器控制台并手动打印“console.log(ViewModelJS.testid)”之类的内容,那么它就可以正常工作了。但当我点击标签并调用函数时就不会了

有什么想法吗


非常感谢

“睾丸”!=“testid”怎么不区分大小写?如果您使用
ViewModelJS.TEST
该选项仍然有效吗?
ViewModelJS
的运行时值是多少?最后,这到底有什么意义?如果要访问模型,即使它们是隐藏的输入,也要使它们成为html元素。@LucaProdan您可以使用中的信息来确定它是否存在以及它的实际名称。@LucaProdan这可能是由于
TestID
属性的保护级别和/或序列化造成的你知道吗,你是对的。出于某种原因,Json.Serialize()函数将所有名称从C#中的标准Pascal大小写更改为Javascript中的驼峰大小写。。这就是我无法正确分配的原因。。。就像在Javascript版本中将TestID转换为TestID一样。。。谢谢你,伙计!!!
<a href="#" onclick="onClickTest();"> Click Here </a>

function onClickTest() {

       ViewModelJS = @Html.Raw(Json.Serialize(Model)); //Translate C# Model to JS Model.
       
       console.log('test id: ' + ViewModelJS.testid); // This print as UNDEFINED
       console.log('test   : ' + ViewModelJS.test);   // This one prints fine.

}