0

在我看来,我有以下几点:

 <a data-bind="click: saveAboutMe(@Html.Raw(Json.Encode(User.Identity.Name)))">save</a>

我正在尝试将 传递@User.Identity.Name给 js 函数,但我得到“意外令牌”。什么是实现这一目标的干净方法?

4

3 回答 3

3

编辑:

它仍然是引号。Json.Encode 提供双引号,因此您需要将数据绑定包含在单引号中:

<a data-bind='click: saveAboutMe(@Html.Raw(Json.Encode(User.Identity.Name)))'>save</a>
于 2013-09-17T23:38:56.990 回答
0

那么在这种情况下,我建议您在您的类中创建一个属性,然后将该类从控制器中扔到视图中,如下所示:-

public ActionResult Action()
{
   MyClass objMyClass = new MyClass();
   objMyClass.UserName = User.Identity.Name;
   return View(objMyClass);
}

public class MyClass
{
  public string UserName { get; set; }
}

现在在视图上,您​​可以将值保存在隐藏字段中。现在,您可以在 java 脚本中的任何位置访问此隐藏字段的值。

于 2013-09-18T05:37:17.080 回答
0

你需要使用@Html.AttributeEncode 方法:

<a data-bind="click: saveAboutMe.bind($data, '@(Html.AttributeEncode(User.Identity.Name))')">save</a>
于 2013-09-18T11:07:03.630 回答