javascript - 如何在剃刀视图中使用 Javascript 拆分('@')脚本?
问题描述
@{
ViewBag.Title = "Index";
Layout = null;
}
</head>
<body>
<!DOCTYPE html>
<html lang="en">
<head>
<div id="login-page">
<div class="container">
<div class="form-login">
<h2 class="form-login-heading">sign in now</h2>
<div class="login-wrap">
<input type="text" id="txtUsername" class="form-control"
placeholder="User ID" autofocus>
<br />
<input type="password" id="txtPassword" class="form-control"
placeholder="Password">
<label class="checkbox">
<span class="pull-right">
<a data-toggle="modal" href="login.html#myModal">
Forgot Password?</a>
</span>
</label>
<button class="btn btn-theme btn-block" id="btnLogin"><i
class="fa fa-lock"></i> SIGN IN</button>
<hr>
<div class="registration">
Don't have an account yet?<br />
<a class="" href="#">
Create an account
</a>
</div>
</div>
<div id="divError" class="alert alert-danger collapse">
<a id="linkClose" href="#">×</a>
<div id="divErrorText">
</div>
</div>
</div>
</div>
<script>
$('#btnLogin').click(function () {
$.ajax({
url: '/token',
method: 'POST',
contentType: "application/json",
data: {
username: $('#txtUsername').val(),
password: $('#txtPassword').val(),
grant_type: "password"
},
success: function (response) {
localStorage.setItem('accessTokenP',
response.access_token);
//example@yahoo.com
var x = response.userName.toString().split('@');
localStorage.setItem('NameP', x[0]);
$('#divErrorText').text(JSON.stringify(response));
$('#divError').show('fade');
var url = "/Home/index";
window.location.href = url;
},
error(response) {
alert("error")
$('#divErrorText').text(JSON.stringify(response));
$('#divError').show('fade');
}
</script>
</body>
</html>
源错误:
第 128 行:成功:函数(响应){ 第 129 行:localStorage.setItem('accessTokenP', response.access_token); 第 130 行: var x = response.userName.toString().split('@'); 第 131 行:localStorage.setItem('NameP', x[0]); 第 132 行:
源文件:/Views/Home/Login.cshtml 行:130
解决方案
由于 @ 是 Razor 中的保留字符,因此要在字符串中获取实际的 @ 字符,您需要通过加倍来转义 @ 字符。所以
var x = response.userName.toString().split('@');
变成
var x = response.userName.toString().split('@@');
通过以这种方式转义它,Razor 了解您使用的 @ 不是作为 Razor 符号而是作为文字,并且单个 @ 将放置在字符串中,这是您在这种情况下所需要的。
推荐阅读
- c - 使用 open("/dev/fd/n", mode) 重新打开现有文件描述符
- python - 如何用多行查找/替换python语句并保持正确的缩进?
- python - !unzip 在 jupyter 单元格中未被识别为命令
- json - 在 Dart 中使用唯一键解析 JSON 对象
- c++ - 使用堆栈的 NQueens 问题,代码给出不正确的输出
- css - 如何在 React Native 中使用 css position absolute 和 flex end
- python - 无法将已安装的 python 库 Yellowbrick 导入到 jupyter notebook
- amazon-web-services - 如何在 AWS EKS 设置中的 ksonnet 初始化步骤中解决“错误未找到 Major.Minor.Patch 元素”
- amazon-web-services - 反复出现的警告 - 无法清理 KCL 2.3 上的租约
- python - 如何修剪列表的特定元素?