我正在尝试使用几个按钮创建一个简单的MVC 4应用程序,单击这些按钮会在其文本值中添加一个按钮。问题是当我使用<输入>按钮我提交表单时和使用<时无法更改文本值按钮>然后没有任何东西传递给行动。
我有一个简单的SQL数据库,控制器命中这个数据库是初始ViewData值的来源,以及它如何存储按钮的当前值。
此外,我目前正在尝试使用多种形式,但如果可以使用一种形式,那么这将是理想的。
@using (Ajax.BeginForm("AddOne", "Home", null, new AjaxOptions { UpdateTargetId = "btn-tc-top"}, new { @class = "rectangle-top" }))
{
<input type="submit" class="button" name="button" id="btn-tc-top" value="@ViewData["ct-t"]"/>
}
@using (Ajax.BeginForm("AddOne", "Home", null, new AjaxOptions { UpdateTargetId = "btn-tc-bottom"}, new { @class = "rectangle-bottom" }))
{
<button type="submit" class="button" name="button" id="btn-tc-bottom">@ViewData["ct-b"]</button>
}
答案 0 :(得分:1)
您可以订阅OnSuccess
处理程序:
@using (Ajax.BeginForm("AddOne", "Home", new { id = "btn-tc-top" }, new AjaxOptions { OnSuccess = "addSuccess" }, new { @class = "rectangle-top" }))
{
<input id="btn-tc-top" class="button" type="submit" name="button" value="@ViewData["ct-t"]" />
}
@using (Ajax.BeginForm("AddOne", "Home", new { id = "btn-tc-bottom" }, new AjaxOptions { OnSuccess = "addSuccess" }, new { @class = "rectangle-bottom" }))
{
<input id="btn-tc-bottom" class="button" type="submit" name="button" value="@ViewData["ct-b"]" />
}
可以这样定义:
function addSuccess(result) {
$('#' + result.id).val(result.text);
}
和控制器:
public class HomeController : Controller
{
public ActionResult Index()
{
ViewData["ct-t"] = "1";
ViewData["ct-b"] = "2";
return View();
}
[HttpPost]
public ActionResult AddOne(string id, int button)
{
return Json(new { id = id, text = button + 1 });
}
}