我试图通过jquery获取输入到文本框的值,并将其从我的登录视图传递到我的索引视图以显示用户名。我试图用波纹管,但没有显示。MVC将数据从视图传递到视图
这怎么办?以及推荐的方法是什么?
登录:
<script>
$("#loginbutton").click(function() {
var username = ($("#username").val());
ViewBag.Usersname = username;
});
</script>
<body>
<form action="CheckUser" method="post" class="form-horizontal col-md-6 col-md-offset-4">
<h1>Welcome to the Report Login</h1><br />
<label class="control-label">Username or Email:</label><br />
<input type="text" class="form-control" name="username"> <br />
<label class="control-label">Password:</label><br />
<input type="password" class="form-control" name="password"> <br />
<input type="checkbox" name="remember" value="rememberme" /> Remember me <br />
<a href="@Url.Action("ForgotPassword", "Home")" class="elements"><span>Forgot Password?</span></a><br />
<div class="col-md-7 text-center">
<button type="submit" class="btn btn-success" id="loginbutton">Log In</button>
</div>
</form>
</body>
索引包含:
@ViewBag.Usersname
你使用的是提供的登录API吗?如果是这样,你可以使用'User.Identity.Name'无论你想要 – 2014-09-10 09:46:17
嗨安德烈,不怕我用我自己的解决方案了解更多的MVC。 :) – Baggerz 2014-09-10 10:10:19
那么,首先,这行'ViewBag.Usersname = username;'不起作用。您需要记住,您可以使用Razor在页面生成时设置客户端变量_,但不能使用JavaScript来设置服务器端变量。使用'ViewBag'是通常的方式,但是这需要在控制器中设置。在正确登录用户之后,在“ViewBag”中设置其名称。请记住,没有双向绑定,因此无论客户端的变量发生什么变化,都不会反映到服务器上(除非使用HTTP请求发送值)。 – 2014-09-10 10:23:12