在我看来,我有以下几点:
<a data-bind="click: saveAboutMe(@Html.Raw(Json.Encode(User.Identity.Name)))">save</a>
我正在尝试将 传递@User.Identity.Name
给 js 函数,但我得到“意外令牌”。什么是实现这一目标的干净方法?
在我看来,我有以下几点:
<a data-bind="click: saveAboutMe(@Html.Raw(Json.Encode(User.Identity.Name)))">save</a>
我正在尝试将 传递@User.Identity.Name
给 js 函数,但我得到“意外令牌”。什么是实现这一目标的干净方法?
编辑:
它仍然是引号。Json.Encode 提供双引号,因此您需要将数据绑定包含在单引号中:
<a data-bind='click: saveAboutMe(@Html.Raw(Json.Encode(User.Identity.Name)))'>save</a>
那么在这种情况下,我建议您在您的类中创建一个属性,然后将该类从控制器中扔到视图中,如下所示:-
public ActionResult Action()
{
MyClass objMyClass = new MyClass();
objMyClass.UserName = User.Identity.Name;
return View(objMyClass);
}
public class MyClass
{
public string UserName { get; set; }
}
现在在视图上,您可以将值保存在隐藏字段中。现在,您可以在 java 脚本中的任何位置访问此隐藏字段的值。
你需要使用@Html.AttributeEncode 方法:
<a data-bind="click: saveAboutMe.bind($data, '@(Html.AttributeEncode(User.Identity.Name))')">save</a>