Jquery Can';t在HTML ID/Class元素中动态写入razor变量
我一直在努力改进我的MVC网站(它使用GMAPSAPI),通过创建一个按钮(避免通行费)来更新旅行距离。想法如下 按下按钮前: 里斯本马德里:4小时内500公里30 马德里-巴黎:9h15内行驶1000公里 按下按钮后: 里斯本马德里:6:50,550公里 马德里-巴黎:13时55分行驶1100公里 为此,我编写了以下代码: 单击按钮之前: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 =
<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")');
}
}