C#WebApplication POST

时间:2016-07-21 15:04:39

标签: javascript c# asp.net-mvc asp.net-ajax

我尝试使用C#

发布表单

我进行了一些搜索,但是我无法正确编码(我是这个领域的新手)。

这是我的代码;

查看;

id

控制器;

<form>
          <div class="field-wrap">
              <label>
                  Email Address<span class="req">*</span>
              </label>
              <input type="email" id="input-username" name="Username" required autocomplete="on" />
          </div>

          <div class="field-wrap">
            <label>
              Password<span class="req">*</span>
            </label>
            <input type="password" id="input-password" name="Password" required autocomplete="on"/>
          </div>

          <p class="forgot"><a href="#">Forgot Password?</a></p>

          <button class="button button-block" id="button-login">Log In</button>

      </form>

的Javascript;

// GET: User
        [HttpPost]
        public ActionResult Login()
        {
            string username = Session["Username"].ToString();
            string password = Session["Password"].ToString();

            Service iLocationService = new Service();
            var result = Service.MemberGetLogin( username, password, "127.0.0.1" );

            ViewBag.Message = result;

            return View();
        }

});

我要做的是POST输入值以取消用户。

先谢谢

1 个答案:

答案 0 :(得分:2)

看看这一行

  

string username = Session [“Username”]。ToString();

在您的代码中,您尝试从Session变量中读取用户名和密码值。谁将用户名和密码设置为Session?您应该从已发布的表单中阅读这些内容并使用它。

[HttpPost]
public ActionResult Login(string userName,string password)
{
  // do something with userName and password and return something
}

此外,您需要确保序列化表单,而不是单击按钮。我个人更喜欢使用Html帮助方法生成表单标记,并在我的javascript代码中使用表单的action属性值,而不是硬编码网址。

所以在我的剃刀视图中

@using(Html.BeginForm("login","User"))
{
    //Your existing form inputs goes here
   <button class="button button-block" id="button-login">Log In</button>
}

并在脚本中

$("#button-login").click(function () {
     $.ajax({
        type: "POST",
        url: $(this).closest("form").attr("action"),
        data: $(this).closest("form").serialize()           
     })
});

由于您正在进行ajax表单提交,我建议您返回一个json响应,您的客户端代码可以解析并做更多事情。

[HttpPost]
public ActionResult Login(string userName,string password)
{
   //if userName and password are valid
       return Json(new { Status="success"});
   // else
         return Json(new { Status="failed", Message="Invalid credentials});
}

在你完成的回调中,你应该检查这个值并做更多的事情

.done(function (result) {
   if(result.Status==="success")
   {
     window.location.href="/Home/Index"; // change to wherever you want to redirect to
   }
   else
   {
     alert(result.Message);
   }    
})