C# Javascript使用Razor和MVVM不接受日期或字符串作为参数

C# Javascript使用Razor和MVVM不接受日期或字符串作为参数,c#,javascript,html,razor,mvvm,C#,Javascript,Html,Razor,Mvvm,我的JavaScript方法有一个问题,没有触发或给出错误的值 //MediaList consists of: int UserID, DateTime DateEarned, string Reason @foreach (var medal in @Model.medalList) { <a onclick="JSMethod(@medal.UserID, @medal.DateEarned.ToShortDateString(), @medal.Reason.ToStrin

我的JavaScript方法有一个问题,没有触发或给出错误的值

//MediaList consists of: int UserID, DateTime DateEarned, string Reason
@foreach (var medal in @Model.medalList)
{
    <a onclick="JSMethod(@medal.UserID, @medal.DateEarned.ToShortDateString(), @medal.Reason.ToString())" click here</a> 
}
Javascript:

function JSMethod(UserID, medalDate, medalCategory{
    //Do things.
};
//MediaList consists of: int UserID, DateTime DateEarned, string Reason
@foreach (var medal in @Model.medalList)
{
    <a onclick="JSMethod(@medal.UserID, @medal.DateEarned.ToShortDateString(), @medal.Reason.ToString())" click here</a> 
}
HTML:

//MediaList consists of: int UserID, DateTime DateEarned, string Reason
@foreach (var medal in @Model.medalList)
{
    <a onclick="JSMethod(@medal.UserID, @medal.DateEarned.ToShortDateString(), @medal.Reason.ToString())" click here</a> 
}
//MediaList由以下内容组成:int UserID、DateTime dateEnowned、string Reason
@foreach(var奖牌@Model.medalList)
{

混合Razor和JavaScript时,您必须记住这两种语言的语法:在这种情况下,您需要在JavaScript中围绕Razor注入的值使用引号:

//MediaList consists of: int UserID, DateTime DateEarned, string Reason
@foreach (var medal in @Model.medalList)
{
    <a onclick="JSMethod(@medal.UserID, @medal.DateEarned.ToShortDateString(), @medal.Reason.ToString())" click here</a> 
}
<a onclick="JSMethod(@medal.UserID, '@medal.DateEarned.ToShortDateString()', '@medal.Reason.ToString()')" click here</a>

在javascript中传递字符串没有问题。你的函数如何处理传入的值?你的JS函数中有一个输入错误,你缺少了关闭参数列表的括号。这是你的代码的复制和粘贴吗?在添加勾号后,我能够在javascript函数中获得日期。将所有的vticks中的值?@joelcochran不是每个值-它取决于JS函数期望的类型。