Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/73.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
Jquery Can';t在HTML ID/Class元素中动态写入razor变量_Jquery_Html_Css_Asp.net Mvc_Razor - Fatal编程技术网

Jquery Can';t在HTML ID/Class元素中动态写入razor变量

Jquery Can';t在HTML ID/Class元素中动态写入razor变量,jquery,html,css,asp.net-mvc,razor,Jquery,Html,Css,Asp.net Mvc,Razor,我一直在努力改进我的MVC网站(它使用GMAPSAPI),通过创建一个按钮(避免通行费)来更新旅行距离。想法如下 按下按钮前: 里斯本马德里:4小时内500公里30 马德里-巴黎:9h15内行驶1000公里 按下按钮后: 里斯本马德里:6:50,550公里 马德里-巴黎:13时55分行驶1100公里 为此,我编写了以下代码: 单击按钮之前: <div id="collapse2" style="display:none"> @{ TripData ThisTripData =

我一直在努力改进我的MVC网站(它使用GMAPSAPI),通过创建一个按钮(避免通行费)来更新旅行距离。想法如下

按下按钮前: 里斯本马德里:4小时内500公里30 马德里-巴黎:9h15内行驶1000公里

按下按钮后: 里斯本马德里:6:50,550公里 马德里-巴黎:13时55分行驶1100公里

为此,我编写了以下代码:

单击按钮之前:

<div id="collapse2" style="display:none">
@{
   TripData ThisTripData = new TripData();//A structure created inside @functions{}
   ThisTripData = GetDistanceAndTime(false);

   int MyLength = ThisTripData.HoursList.Count();
   for (int j = 0; j < MyLength; j++) {
      if (Model.ElementAt(j).Trip == Model.ElementAt(j + 1).Trip) {
         <p></p>
         <span id="A@(j)">@ThisTripData.DistanceList.ElementAt(j)</span> <span> Km in </span> <span id="B@(j)">@ThisTripData.HoursList.ElementAt(j)</span><span>:</span><span id="C@(j)">@ThisTripData.MinutesList.ElementAt(j).ToString("00")</span><span> h </span>
       }
   }
}
</div>

@{
TripData ThisTripData=new TripData();//在@functions{}内创建的结构
ThisTripData=GetDistanceAndTime(假);
int MyLength=thistTripData.HoursList.Count();
对于(int j=0;j
@ThisTripData.DistanceList.ElementAt(j)Km in@ThisTripData.HoursList.ElementAt(j):@ThisTripData.MinutesList.ElementAt(j)ToString(“00”)h
}
}
}
这个想法是通过按下“避免通行费”按钮来更新这些id。正如你所看到的,我刚刚创建了多个ID:A0、B0、C0、A1、B1、C1等等

单击按钮(javascript)后:

@{
TripData ThisTripData3=新TripData();//在@functions{}内创建的结构
ThisTripData3=GetDistanceAndTime(真);
}

对于(var i=0;所有逻辑(因为它是逻辑)都应该在您的控制器中。嗨,利亚姆!是的,我知道它写得不漂亮,而且不尊重MVC模型。但是,我认为这不会影响主要问题:如何混合$(“#A2”).text(某物)当这是一个razor列表元素时?这是你的基本问题。你的客户端代码、控制器逻辑和模型都乱七八糟。我开始写答案,但坦率地说,这段代码有太多问题要回答。我要说的一件事是,你的循环是零基的,因为你的count不是。所以这就是为什么你的索引超出范围。你需要
for(var i=0;iLiam,我是MVC的新手,但我认为我已经理解了这个模型。我的大部分代码都在使用它。这个细节只是一个测试。我感谢你的提示,但它没有起作用。我得到了“超出范围”错误,因为浏览器显然会检查razor变量,尽管有“if语句”。哦,在任何情况下,如果你仔细想想,我认为这没有多大意义:我的循环是基于零的,但我使用了“
@{
   TripData ThisTripData3 = new TripData(); //A structure created inside @functions{}
   ThisTripData3 = GetDistanceAndTime(true);
}

for (var i=0;i<@(ThisTripData3.HoursList.Count());i++) {
   if (i==0) {
      $('#A0').text('@ThisTripData3.DistanceList[0].ToString("00")');
      $('#B0').text('@ThisTripData3.HoursList[0].ToString("00")');
      $('#C0').text('@ThisTripData3.MinutesList[0].ToString("00")');
   }
   if (i==1) {
      $('#A1').text('@ThisTripData3.DistanceList[1].ToString("00")');
      $('#B1').text('@ThisTripData3.HoursList[1].ToString("00")');
      $('#C1').text('@ThisTripData3.MinutesList[1].ToString("00")');
   }
   if (i==2) {
      $('#A2').text('@ThisTripData3.DistanceList[2].ToString("00")');
      $('#B2').text('@ThisTripData3.HoursList[2].ToString("00")');
      $('#C2').text('@ThisTripData3.MinutesList[2].ToString("00")');
   }
}