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

本文关键字:Razor MVVM 参数 日期 不接受 字符串 Javascript | 更新日期: 2023-09-27 17:49:32

我有一个问题,我的JavaScript方法不触发或给出不正确的值。

Javascript:

function JSMethod(UserID, medalDate, medalCategory{
    //Do things.
};

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> 
}

JavaScript方法似乎没有采取@model.Reason作为参数,是否有在字符串传递到JavaScript函数的问题?

当日期(@medal.DateEarned)传入时,要么忽略它,要么将其作为ToString('DD/MM/YYYY')传入,并最终进行除法,例如,12/03/2014导致传入参数为0.00198…

是否有让我的JavaScript函数接受我的日期时间和字符串作为参数?

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

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

<a onclick="JSMethod(@medal.UserID, '@medal.DateEarned.ToShortDateString()', '@medal.Reason.ToString()')" click here</a>

请注意日期和原因字符串周围的勾号。如果UserID不是数字,它也需要勾号。