我希望收到按钮的值为a.aaa
但是我得到了null
a.aaa需要" stackOverflow" [HttpPost]
中的字符串控制器代码
public class DefaultController : Controller
{
// GET: Default
public ActionResult Index()
{
return View();
}
[HttpPost]
public ActionResult Index(Class1 a)
{
return View();
}
}
模型
namespace WebApplication3.Models
{
public class Class1
{
public string aaa { get; set; }
}
}
视图
@model WebApplication3.Models.Class1
@{
ViewBag.Title = "Index";
}
<h2>Index</h2>
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
<button type="button" name="aaa" id="aaa" value="stackOverflow">pressMe</button>
<input type="submit" />
}
答案 0 :(得分:0)
什么是[HttpPost]?
您应该在Request["aaa"]
@using (Html.BeginForm("Index", "DefaultController ", FormMethod.Post))
{
<p>
@Html.TextBox("aaa", "stackOverflow")
<input type="submit" value="Text" />
</p>
}
这段代码应该可以肯定,你可以尝试一下!
答案 1 :(得分:0)
这适合我。在return View();
方法的ActionResult Index(Class1 a)
行设置断点。
这应该表明a
的{{1}}属性值为stackOverflow
。
如果您无法复制此行为,请澄清您期望的行为。
答案 2 :(得分:0)
我建议通过javascript / ajax实现
在你的html主体中
<a href="javascript:void(0)" onclick="myJsFunc('aaa');">Press Me</a>
在你的html脚本中
function myJsFunc(somedata) {
$.ajax({
type: 'POST',
contentType: 'application/json',
url: '/DefaultController/Index',
data: { 'somedata' : somedata },
success: function(result) {
//do something
}
error: function (errorData) {alert(errorData);}
});
};
在您的控制器中
[HttpPost]
public ActionResult Index(string somedata)
{
if(somedata == "aaa")
{
//do something
}
return Json("successData");
}
然后将样式链接为带有css的按钮。
或者用输入替换按钮,然后按照examples
进行操作