我在Asp.net中使用MVC 3我需要将HTTP POST日期发送到Control。
控件应该发回一些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>
答案 0 :(得分:1)
是的,有可能。如果HttpPostAttribute
出现问题,您将无法进入LogOn
方法。您应该重新检查从客户端发送的字段,并将这些字段放在请求正文中,而不是查询字符串。例如,您可以通过检查网络流量或仅通过调试HttpContext.Current.Request.Form property
答案 1 :(得分:0)
是的,你可以。 JsonResult是一个ActionResult,与POST或GET请求没有任何关系 确保使用
包装输入@using(Html.BeginForm())
or
<form action="" method="">
</form>
不确定您是如何访问您的字段的..
你在做FormCollection["form"]
吗?它应该是formCollection["Password"]
,formCollection["UserName"]
等。