用FormMethod发回.Post使用模态
本文关键字:模态 发回 FormMethod Post | 更新日期: 2023-09-27 18:15:30
我有一个jQuery数据表,它有一些自定义按钮,当点击一个引导模式被调用。模态询问用户是否想要停用一个帐户。
在我的example2
Datatable中,当单击按钮时,我将帐户的唯一标识符(pid
)传递给模态:
$('#example2').on('click', 'tr', function () {
var oData = oTable.fnGetData(this);
var pid = oData[0];
$(".modal-footer #pid").val(pid);
//alert(pid);
});
我面临的问题是试图张贴回我的控制器使用下面的形式方法在模态,我怎么能使这个工作:
模态:
<!-- Modal content-->
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h4 class="modal-title">Warning!</h4>
</div>
<div class="modal-body">
<p>Are you sure you want to deactivate this account?</p>
</div>
<div class="modal-footer">
@using (@Html.BeginForm("ProviderActivate", "AdminPanel", FormMethod.Post))
{
<input type="hidden" name="pid" id="pid" value="pid" />
<input type="submit" value="Publish" class="btn btn-default" data-dismiss="modal" />
}
@*<button type="button" class="btn btn-default" data-dismiss="modal">Ok</button>*@
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
目前上面的模态根本不起作用。我点击模式内的停用(Publish
)按钮,没有任何东西被张贴回控制器,没有帐户被停用/激活。如果我在下面的控制器动作上设置一个断点并单击publish,什么也不会发生。断点没有命中。
public ActionResult ProviderActivate(FormCollection form) //change id to form post hidden element refer to TSProps
{
if (!CustomSecurity.IsAdmin(User.Identity.Name))
return RedirectToAction("Index", "Home");
string pid = form["pid"];
bool any = _db.CareProviders.Where(c => c.ProviderId == pid && !c.Activated.HasValue).Any();
....etc
在与OP讨论后,发现在提交按钮上使用data-dismiss属性会导致表单不发布。
这篇文章解释了为什么会发生这种情况。
你可以在你的表单中添加一个隐藏字段,然后为隐藏字段指定ID,这样当你向你的控制器发送消息时,它就可以在你的控制器操作中使用了。
<input type="hidden" name="accountId" id="accountId" val="" />
然后在您的example2 on click函数中添加另一行
$('#accountId').val(pid);
最后,在控制器中,为控制器动作添加一个名为accountId的参数。