如何获取jquery中的viewbag数据?
How to get viewbag data in jquery?
您好,我正在使用 mvc5 开发 Web 应用程序。我有如下的用户名和密码字段的登录表单。
@using (Html.BeginForm("ClickAction", "Login", FormMethod.Post))
{
@Html.TextBox("txtUid", null, new { @maxlength = "15", id = "txtUid",
@class = "form-control validate[requiredInLogin] text-input "})
@Html.Password("txtPassword", null, new { @maxlength = "15", id =
"txtPassword", @class = "form-control validate[requiredOutLogin] text-input" })
<input type="submit" class="btn btn-primary btnLogin red"
value="SIGN IN" name="submit" />
}
我有以下操作方法,
[HttpPost]
public ActionResult ClickAction()
{
//Some logic
//When 3 unsuccessful attempts made to login then i set
//ViewBag.captcha = true;
return View();
}
我将进行 3 次不成功的登录尝试,然后我将 ViewBag.captcha 设置为 true。一旦我将 ViewBag.captcha 设置为 true 我想访问视图中的 ViewBag.captcha 值并且我想显示验证码。我可以知道如何访问视图中的 Viewbag 值吗?任何帮助,将不胜感激。谢谢,
与此同时,我尝试了以下选项,
@{
var message = ViewBag.captcha;
}
然后在 JS 中
var message = '@message';
if (message)
{
alert(message);
}
下面是我的登录视图。
<html>
<head></head>
<body>
<div id="formID">
@*<form id="formID">*@
<div class="loginContainer">
<div class="loginContentArea">
<div class="loginLogo"><img src="~/images/c3card.png" alt="C3 Card" align="middle" /></div>
@using (Html.BeginForm("ClickAction", "Login", FormMethod.Post))
{
<div class="loginUsernamePassword">
<i class="fa fa-user"></i>
@Html.TextBox("txtUid", null, new { @maxlength = "15", id = "txtUid", @class = "form-control validate[requiredInLogin] text-input ", placeholder = "Username", autocomplete = "off" })
</div>
<div class="loginUsernamePassword">
<i class="fa fa-lock"></i>
@Html.Password("txtPassword", null, new { @maxlength = "15", id = "txtPassword", @class = "form-control validate[requiredOutLogin] text-input", placeholder = "Password", autocomplete = "off", Style = "background:#FFFFFF;" })
</div>
<div class="errormessage">@TempData["Message"]</div>
<div class="captcha" id="captcha">
<div class="g-recaptcha" data-badge="inline" data-sitekey=@System.Configuration.ConfigurationManager.AppSettings["recaptchaPublicKey"]></div>
<br />
</div>
<div class="loginButton">
<input type="submit" class="btn btn-primary btnLogin red" value="SIGN IN" name="submit" />
</div>
<div class="loginLink">@Html.ActionLink("Forgot Your Password?", "Index", "ForgotPassword")@*<a href="#" data-featherlight="#recoverpwd"></a>*@</div>
}
</div>
</div>
</div>
<script type="text/javascript">
$(function () {
$('input[type=password]').each(function () {
$(this).attr('data-background-color', $(this).css('background-color'));
$(this).css('background-color', $(this).css('color'));
$(this).attr('type', 'text');
$(this).focus(function () {
$(this).attr('type', 'password');
$(this).css('background-color', $(this).attr('data-background-color'));
});
$(this).blur(function () {
$(this).css('background-color', $(this).css('color'));
$(this).attr('type', 'text');
});
});
});
jQuery(document).ready(function () {
@{ var message = ViewBag.captcha; }
alert(message);
if (message) { alert(message); }
$("[id=captcha]").hide();
// binds form submission and fields to the validation engine
jQuery("#formID").validationEngine();
$("formID").attr('autocomplete', 'off');
$('#txtUid').attr('autocomplete', 'off');
$('#txtPassword').attr('autocomplete', 'off');
});
$("#myinput").rules("add", {
minlength: 2
});
</script>
</body>
</html>
这对我不起作用。
我可以知道在上述情况下访问 viewbag 值的正确方法吗?非常感谢任何帮助。太感谢了。
你能不能像下面这样在 JS 中更改消息变量,然后尝试
jQuery(document).ready(function () {
var message = '@ViewBag.captcha'; //change it here
if (message)
{
alert(message);
}
$("[id=captcha]").hide();
// binds form submission and fields to the validation engine
jQuery("#formID").validationEngine();
$("formID").attr('autocomplete', 'off');
$('#txtUid').attr('autocomplete', 'off');
$('#txtPassword').attr('autocomplete', 'off');
});
您可以像这样初始化一个 ViewBag
值:
ViewBag.captcha = "true";
然后你可以在视图中像这样访问它:
var message = @ViewBag.captcha;
从这里开始,您将可以使用 message
。你基本上做了以下事情:
- 你初始化
ViewBag.captcha
(注意这部分被注释掉了)
- 您将其放入名为
message
的变量中
- 您尝试将
@message
作为 string
,但您没有使用计算出的 Javascript 值
由于您使用的是 Razor,因此您可以这样做:
1. 将你的 ViewBag 值赋给一个变量
<script type="text/javascript">
var message = "@ViewBag.captcha";
</script>
您不必将其设置在准备好的文档中。
2.The 变量是字符串类型。为了在函数中使用它,你必须这样做:
If(message.toLowerCase() == "true")
为了得到想要的效果。
要将其转换为布尔值,您可以使用类似的东西
message = message.toLowerCase() === "true"
希望对您有所帮助
您好,我正在使用 mvc5 开发 Web 应用程序。我有如下的用户名和密码字段的登录表单。
@using (Html.BeginForm("ClickAction", "Login", FormMethod.Post))
{
@Html.TextBox("txtUid", null, new { @maxlength = "15", id = "txtUid",
@class = "form-control validate[requiredInLogin] text-input "})
@Html.Password("txtPassword", null, new { @maxlength = "15", id =
"txtPassword", @class = "form-control validate[requiredOutLogin] text-input" })
<input type="submit" class="btn btn-primary btnLogin red"
value="SIGN IN" name="submit" />
}
我有以下操作方法,
[HttpPost]
public ActionResult ClickAction()
{
//Some logic
//When 3 unsuccessful attempts made to login then i set
//ViewBag.captcha = true;
return View();
}
我将进行 3 次不成功的登录尝试,然后我将 ViewBag.captcha 设置为 true。一旦我将 ViewBag.captcha 设置为 true 我想访问视图中的 ViewBag.captcha 值并且我想显示验证码。我可以知道如何访问视图中的 Viewbag 值吗?任何帮助,将不胜感激。谢谢,
与此同时,我尝试了以下选项,
@{
var message = ViewBag.captcha;
}
然后在 JS 中
var message = '@message';
if (message)
{
alert(message);
}
下面是我的登录视图。
<html>
<head></head>
<body>
<div id="formID">
@*<form id="formID">*@
<div class="loginContainer">
<div class="loginContentArea">
<div class="loginLogo"><img src="~/images/c3card.png" alt="C3 Card" align="middle" /></div>
@using (Html.BeginForm("ClickAction", "Login", FormMethod.Post))
{
<div class="loginUsernamePassword">
<i class="fa fa-user"></i>
@Html.TextBox("txtUid", null, new { @maxlength = "15", id = "txtUid", @class = "form-control validate[requiredInLogin] text-input ", placeholder = "Username", autocomplete = "off" })
</div>
<div class="loginUsernamePassword">
<i class="fa fa-lock"></i>
@Html.Password("txtPassword", null, new { @maxlength = "15", id = "txtPassword", @class = "form-control validate[requiredOutLogin] text-input", placeholder = "Password", autocomplete = "off", Style = "background:#FFFFFF;" })
</div>
<div class="errormessage">@TempData["Message"]</div>
<div class="captcha" id="captcha">
<div class="g-recaptcha" data-badge="inline" data-sitekey=@System.Configuration.ConfigurationManager.AppSettings["recaptchaPublicKey"]></div>
<br />
</div>
<div class="loginButton">
<input type="submit" class="btn btn-primary btnLogin red" value="SIGN IN" name="submit" />
</div>
<div class="loginLink">@Html.ActionLink("Forgot Your Password?", "Index", "ForgotPassword")@*<a href="#" data-featherlight="#recoverpwd"></a>*@</div>
}
</div>
</div>
</div>
<script type="text/javascript">
$(function () {
$('input[type=password]').each(function () {
$(this).attr('data-background-color', $(this).css('background-color'));
$(this).css('background-color', $(this).css('color'));
$(this).attr('type', 'text');
$(this).focus(function () {
$(this).attr('type', 'password');
$(this).css('background-color', $(this).attr('data-background-color'));
});
$(this).blur(function () {
$(this).css('background-color', $(this).css('color'));
$(this).attr('type', 'text');
});
});
});
jQuery(document).ready(function () {
@{ var message = ViewBag.captcha; }
alert(message);
if (message) { alert(message); }
$("[id=captcha]").hide();
// binds form submission and fields to the validation engine
jQuery("#formID").validationEngine();
$("formID").attr('autocomplete', 'off');
$('#txtUid').attr('autocomplete', 'off');
$('#txtPassword').attr('autocomplete', 'off');
});
$("#myinput").rules("add", {
minlength: 2
});
</script>
</body>
</html>
这对我不起作用。
我可以知道在上述情况下访问 viewbag 值的正确方法吗?非常感谢任何帮助。太感谢了。
你能不能像下面这样在 JS 中更改消息变量,然后尝试
jQuery(document).ready(function () {
var message = '@ViewBag.captcha'; //change it here
if (message)
{
alert(message);
}
$("[id=captcha]").hide();
// binds form submission and fields to the validation engine
jQuery("#formID").validationEngine();
$("formID").attr('autocomplete', 'off');
$('#txtUid').attr('autocomplete', 'off');
$('#txtPassword').attr('autocomplete', 'off');
});
您可以像这样初始化一个 ViewBag
值:
ViewBag.captcha = "true";
然后你可以在视图中像这样访问它:
var message = @ViewBag.captcha;
从这里开始,您将可以使用 message
。你基本上做了以下事情:
- 你初始化
ViewBag.captcha
(注意这部分被注释掉了) - 您将其放入名为
message
的变量中
- 您尝试将
@message
作为string
,但您没有使用计算出的 Javascript 值
由于您使用的是 Razor,因此您可以这样做: 1. 将你的 ViewBag 值赋给一个变量
<script type="text/javascript">
var message = "@ViewBag.captcha";
</script>
您不必将其设置在准备好的文档中。 2.The 变量是字符串类型。为了在函数中使用它,你必须这样做:
If(message.toLowerCase() == "true")
为了得到想要的效果。
要将其转换为布尔值,您可以使用类似的东西
message = message.toLowerCase() === "true"
希望对您有所帮助