我得到的问题是默认情况下ASP.NET Strings的值是按值传递到javaScript函数而没有它们的类型。例如,“1”作为1传入。“a”作为a传入,但随后发生错误,因为从未定义过。
这是我正在创建的表。
<table border="1">
<tr>
<td>Search Result Number</td>
<td>ID</td>
<td>Topic</td>
<td>Speaker</td>
<td>Verse</td>
<td>Duration</td>
<td>Date</td>
<td>Audience Type</td>
<td>Type</td>
</tr >
@{
int Search_Result_Number = 1;
}
@foreach (Audio audio in Model)
{
string Topic = audio.Topic;
if (Topic.Equals(""))
{
Topic = "None_Given";
}
string Speaker = audio.Speaker;
if (Speaker.Equals(""))
{
Speaker = "None_Given";
}
string Verse = audio.Verse;
if (Verse.Equals(""))
{
Verse = "None_Given";
}
string Duration = audio.Duration;
if (Duration.Equals(""))
{
Duration = "None_Given";
}
string Date = audio.Date;
if (Date.Equals(""))
{
Date = "None_Given";
}
string Type = audio.Type;
if (Type.Equals(""))
{
Type = "None_Given";
}
string Audience_Type = audio.Audience_Type;
if (Audience_Type.Equals(""))
{
Audience_Type ="None_Given";
}
<tr onclick="Displays_Audio_Info(@audio.Date)">
<td>@Search_Result_Number</td>
<td>@audio.Id</td>
<td>@Topic</td>
<td>@Speaker</td>
<td>@Verse</td>
<td>@Duration</td>
<td>@Date</td>
<td>@Audience_Type</td>
<td>@Type</td>
</tr>
Search_Result_Number++;
}
</table>
这是我的javascript函数。
function Displays_Audio_Info(date) {
document.getElementById("Date").innerHTML = date;
}
我的Date列下的第一个值是a。
这是我得到的错误,因为“a”被处理为变量名,而不是字符串。
第35行第26行未处理的异常0x800a1391 - JavaScript运行时错误:'a'未定义
答案 0 :(得分:0)
从您编辑的代码中,您似乎正在设置ID为&#34;日期&#34;到DateTime(字符串)?
如果是这样,为什么不通过<tr onclick="Displays_Audio_Info(@audio.Date.ToShortDateString())">
?
这将为您的Displays_Audio_Info()
提供一个字符串参数。
作为旁注,您在视图中进行了大量处理,我建议您创建一个视图模型,该模型已使用集合中每个项目的正确值填充,而不是在您的所有项目中执行所有操作视图。