[英]Why are my model properties null when trying to POST?
所以我正在嘗試創建一個登錄頁面,並且我創建了一個表單,該表單發布到控制器內的操作。
這就是控制器的樣子,非常簡單,僅用於測試目的。
public ActionResult Verify(User account)
{
var s = account;
if (db.Users.Any(o => o.Username == ""))
{
// Match!
}
return Redirect("https://google.se");
}
這是 HTML
<form id="form1" method="post" action="Verify">
<!-- Input and Submit elements -->
<div class="form-group">
<input type="email" class="form-control form-control-user" id="Username" name="Username" aria-describedby="emailHelp" placeholder="Enter Email Address...">
</div>
<div class="form-group">
<input type="password" class="form-control form-control-user" name="PasswordHash" placeholder="Password">
</div>
<a href="Verify" type="submit" class="btn btn-primary btn-user btn-block" >
Login
</a>
<hr>
</form>
當我單擊Login
它確實調用了Verify
操作,但是我在account
傳遞的參數所有屬性都為空,我不知道為什么。
您並沒有真正提交表單,除非某些 javascript 事件為您執行此操作。
嘗試改變
<a href="Verify" type="submit" class="btn btn-primary btn-user btn-block" >
Login
</a>
改為提交按鈕
<button type="submit" class="btn btn-primary btn-user btn-block" >
Login
</button>
當您使用鏈接時,您正在發出一個 GET 請求,該請求不會將您的表單數據發布到控制器,在 chrome 中,您可以在開發人員工具/網絡中看到自己,打開它,然后單擊登錄,這應該會導致驗證請求出現在請求列表中。
如果您真的想使用鏈接而不是提交按鈕,那么您可以添加一些 javascript 來提交表單,方法是添加事件處理程序或直接從鏈接的 onClick 方法提交表單。
<a href="Verify" onclick="document.getElementById('form1').submit();" class="btn btn-primary btn-user btn-block" >
Login
</a>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.