我无法将表单中的数据发布到控制器操作中。我已经使用HTML.BeginForm()创建了表单,并且我有一个控制器,当我手动创建查询字符串时,它可以正常工作,但我不了解如何使用我的控制器操作使表单工作。 / p>
<form class="navbar-form navbar-left">
<div class="form-group>
@using (Html.BeginForm("GeneralSearch", "Search", FormMethod.Post))
{
@Html.TextBox("searchString")
<button type="submit" class="default">Submit</button>
}
</div>
</form>
然后在我的控制器中,我当前拥有ASP.NET自动放置的HttpGet
属性。但是,如果我将其更改为HttpPost
,问题仍然存在。
[HttpGet]
public ActionResult GeneralSearch(string searchString)
{
return View("SearchResult", viewModel);
}
当我输入文字并提交表格时,网络请求将发送至:
http://localhost:64562/?searchString=test
只需加载默认控制器和操作,而不是&#34;搜索&#34;我在using
语句中指定的控制器。如何正确发布特定操作?
答案 0 :(得分:3)
<form class="navbar-form navbar-left">
<div class="form-group>
@using (Html.BeginForm("GeneralSearch", "Search",
添加了GET
标记,但我发现您正在尝试将表单标记添加到另一个表单标记中,如下所示;这是错误的。
POST
同样,您的控制器必须公开不同的操作方法以满足public ActionResult GeneralSearch()
{
return View();
}
[HttpPost]
public ActionResult GeneralSearch(string searchString)
{
return View("SearchResult", viewModel);
}
和var AWS = require('aws-sdk');
var s3 = new AWS.S3({apiVersion: '2006-03-01'})
var params = {
Bucket: record.s3.bucket.name,
Key : record.s3.object.key
};
s3.headObject(params, function (error, response) {
if(error) {
context.fail();
} else {
var date = response.LastModified; //Last modified date
context.done(null,date);
}
});
请求,您应该
Etudiant
答案 1 :(得分:1)
您正在发布正在侦听GET的方法。
切换FormMethod
@using (Html.BeginForm("GeneralSearch", "Search", FormMethod.Get))