1

我在 Asp.net 中使用 MVC 3 我需要将 HTTP POST 日期发送到控件。控件应该发回一些 JSON 作为响应。目前我正在使用此代码,但我无法在collection.

知道有什么问题吗?

         [HttpPost]
            public JsonResult LogOn(FormCollection collection, string returnUrl)
            {
    ...
return this.Json(new { success = "true", msg = messages[0] });
    }

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
</head>
<body>
    <h1>
        Test LogOn</h1>
    <form action="/Controller/LogOn" method="post">
    UserName:
    <input type="text" name="UserName"><br>
    Password:
    <input type="text" name="Password"><br>
    RememberMe:
    <input type="hidden" name="RememberMe" value="true">
    <input type="submit" value="Submit">
    </form>
</body>
</html>
4

2 回答 2

1

对的,这是可能的。如果 有问题HttpPostAttribute,您将无法进入内部LogOn方法。您应该重新检查字段是从客户端发送的,并且这些字段放在请求正文中,而不是查询字符串中。例如,您可以通过检查网络流量或简单地通过调试HttpContext.Current.Request.Form 属性来检查它

于 2012-10-12T07:31:24.540 回答
0

是的你可以。JsonResult 是一个 ActionResult,与 POST 或 GET 请求没有任何关系。
确保你已经用

@using(Html.BeginForm())

or 
<form action="" method="">
</form>

不知道你是如何访问你的领域的。你在做什么FormCollection["form"]?应该是formCollection["Password"]formCollection["UserName"]等等。。

于 2012-10-12T07:35:39.760 回答