我試圖通過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