我有一个jQuery Datatable,它有一些自定义按钮,当点击一个boostrap模态被调用。模态询问用户是否想要停用帐户。
在我的example2
数据表中,我点击按钮时将帐户的唯一标识符(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
)按钮,没有任何内容发回控制器,没有帐户被停用/激活。如果我在下面的控制器操作上设置了一个断点并单击发布,则没有任何反应。断点没有被击中。
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
答案 0 :(得分:0)
在与OP讨论后,发现在提交按钮上使用data-dismiss属性导致表单不发布。
This帖子解释了为什么会发生这种情况。
您可以在表单中添加隐藏字段,然后将ID分配给隐藏字段,这样当您发布到控制器时,它将在控制器操作中可用。
<input type="hidden" name="accountId" id="accountId" val="" />
然后在点击功能
上为example2添加另一行$('#accountId').val(pid);
最后,在您的控制器中,将一个参数添加到名为accountId的控制器操作中。