在MVC中将视图中的值传递给控制器​​会引发错误

时间:2017-03-27 16:50:07

标签: c# asp.net-mvc

我有以下代码接受用户的值,这些值需要传输到控制器。我可以使用动作链接,但我想知道request.input变量如何在这里工作。

@using (Html.BeginForm("LoginResult", "Dashboard",  FormMethod.Post))
{

 @Html.EditorFor(model =>model.username)

在控制器中:

 public ActionResult LoginResult()
    {
        string strName = Request["username"].ToString();         
        return View();
    }

和模型

 public class Employee
    {

            public string username { get; set; }
            public string age { get; set; }

    }

但是收到错误

  

发生了'System.NullReferenceException'类型的异常   MvcApplication5.dll但未在用户代码中处理

     

附加信息:对象引用未设置为的实例   对象

1 个答案:

答案 0 :(得分:2)

以下是您将如何处理此问题

<body>
    <h2>Dashboard</h2>
    <form method="post" action="" >
    <table>
        <tbody>
            <tr>
                <td>
                    <input type="text" id="textname" name="txtname" />
                </td>
                <td>
                    <input type="text" id="textpassword" name="textpassword" />
                </td>
                <td>
                    <input type="button" id="btnclickhere" name="btnclickhere" value="ClickHere" />
                </td>
            </tr>
           <tr><td>**<input type="submit" value="Save" />**</td></tr>
        </tbody>           
    </table>
     </form>

否则,您将看到类似下面的链接

<a href="javascript:void()" onclick="doLogin()" >Login</a>

<script type="text/javascript">
function doLogin(){
var postData = {
       username = $("#textname").val(),
       password = $("#textpassword").val
};
$.ajax({
  type: "POST",
  url: '/account/logon',
  data: JSON.stringify(postData),
  success: function(result){
},
  contentType:"application/json",
  dataType: "json"
});
}
</script>

我想建议您最好发布表单,而不要使用ajax中的值。此外,将页面放在HTTPS站点上以提高安全性。

希望这有助于