Jquery MVC在引导模式之间传递数据

Jquery MVC在引导模式之间传递数据,jquery,asp.net-mvc,twitter-bootstrap,asp.net-mvc-5,Jquery,Asp.net Mvc,Twitter Bootstrap,Asp.net Mvc 5,我有一个MVC5页面,其中包含一个WebGrid和一个引导模式弹出窗口。在WebGrid中,每一行都有一个链接,当用户单击链接时,我想显示模式弹出窗口,并向弹出窗口发送一些数据,然后发送到控制器页面上的函数 这就是我到目前为止所做的: WebGrid: @grid.GetHtml( tableStyle: "table", mode: WebGridPagerModes.All, columns: new[] { grid.Column(header: "", columnN

我有一个MVC5页面,其中包含一个WebGrid和一个引导模式弹出窗口。在WebGrid中,每一行都有一个链接,当用户单击链接时,我想显示模式弹出窗口,并向弹出窗口发送一些数据,然后发送到控制器页面上的函数

这就是我到目前为止所做的:

WebGrid:

@grid.GetHtml(
  tableStyle: "table",
  mode: WebGridPagerModes.All,
  columns: new[] {
    grid.Column(header: "", columnName: "", format: (item) => MvcHtmlString.Create(string.Format("<a href='#' onclick=\"DeleteCardAskToConfirm('" + item.CardId + "','" + item.licenseplateno+"','" + item.cardno +"');\" return false;'>Slet</a>"))),
    grid.Column(format: @<input type="hidden" name="CardId" value="CardId" />),
    grid.Column(format: @<input type="hidden" name="CustomerId" value="CustomerId" />),
    grid.Column("cardno", "Kort nr." ),
    grid.Column("licenseplateno", "Nummerplade" ),
    grid.Column("createddate", "Oprettet" ),
    grid.Column("inactivedate", "Deaktiveret den" ),
    grid.Column(format: @<input type="hidden" name="pno" value="Pno" /> )
 }
<div class="modal" id="modalDeleteCardQuestion" tabindex="-1" role="dialog" data-id="" aria-labelledby="ModelDeleteCardQuestionLabel" aria-hidden="true">
<div class="modal-dialog">
  <div class="modal-content">
    <div class="modal-header">
      <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
      <h4 class="modal-title">Slet kort?</h4>
    </div>
    <div class="modal-body">
      <div class="alert alert-info">
        <div class="header">Ønsker du at deaktivere kort nr. <label id="Testlbl"></label>?</div>
        Hvis du deaktivere dette kort, vil det ikke længere kunne bruges ved indkørsel på genbrugspladser.<br/>
        Kortet kan senere genaktiveres og tilknyttes til en ny nummerplade.
      </div>
    </div>
    <div class="modal-footer">
      <button type="button" class="btn btn-link" data-dismiss="modal" aria-hidden="true">Nej</button>
      <input type="button" onclick="window.location='@Url.Action("DeleteCard", "AdminCards", new {  })'" value="Ja" class="btn btn-link" />
    </div>
  </div>
</div>
@grid.GetHtml(
表样式:“表”,
模式:WebGridPagerModes.All,
列:新[]{
grid.Column(标题:“”,列名称:“”,格式:(项)=>MvcHtmlString.Create(string.format(“”)),
网格.列(格式:@),
网格.列(格式:@),
网格柱(“卡号”、“科特编号”),
网格柱(“许可证编号”、“Nummerplade”),
网格列(“createddate”、“Opretet”),
网格列(“不活动”、“不活动”),
grid.Column(格式:@)
}
)

型号弹出窗口:

@grid.GetHtml(
  tableStyle: "table",
  mode: WebGridPagerModes.All,
  columns: new[] {
    grid.Column(header: "", columnName: "", format: (item) => MvcHtmlString.Create(string.Format("<a href='#' onclick=\"DeleteCardAskToConfirm('" + item.CardId + "','" + item.licenseplateno+"','" + item.cardno +"');\" return false;'>Slet</a>"))),
    grid.Column(format: @<input type="hidden" name="CardId" value="CardId" />),
    grid.Column(format: @<input type="hidden" name="CustomerId" value="CustomerId" />),
    grid.Column("cardno", "Kort nr." ),
    grid.Column("licenseplateno", "Nummerplade" ),
    grid.Column("createddate", "Oprettet" ),
    grid.Column("inactivedate", "Deaktiveret den" ),
    grid.Column(format: @<input type="hidden" name="pno" value="Pno" /> )
 }
<div class="modal" id="modalDeleteCardQuestion" tabindex="-1" role="dialog" data-id="" aria-labelledby="ModelDeleteCardQuestionLabel" aria-hidden="true">
<div class="modal-dialog">
  <div class="modal-content">
    <div class="modal-header">
      <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
      <h4 class="modal-title">Slet kort?</h4>
    </div>
    <div class="modal-body">
      <div class="alert alert-info">
        <div class="header">Ønsker du at deaktivere kort nr. <label id="Testlbl"></label>?</div>
        Hvis du deaktivere dette kort, vil det ikke længere kunne bruges ved indkørsel på genbrugspladser.<br/>
        Kortet kan senere genaktiveres og tilknyttes til en ny nummerplade.
      </div>
    </div>
    <div class="modal-footer">
      <button type="button" class="btn btn-link" data-dismiss="modal" aria-hidden="true">Nej</button>
      <input type="button" onclick="window.location='@Url.Action("DeleteCard", "AdminCards", new {  })'" value="Ja" class="btn btn-link" />
    </div>
  </div>
</div>

&时代;
斯莱特·科特?
迪克提弗库尔特的恩斯克?
德特科特市的决策者们,布鲁日市的决策者们都是一名工程师。
在纽约的广场上,你可以看到一条长长的街道。 Nej

处理WebGrid链接的Java脚本单击并显示模式

<script type="text/javascript">
    function DeleteCardAskToConfirm(cardid, plade, cardno) {
        //$('#<%=cardno.ClientID%>').text(cardno);
        $('#Testlbl').html(cardno);

        $('#modalDeleteCardQuestion').modal();

    };
</script>

功能删除CardAsktoConfig(卡片、格子、卡片编号){
//$('#')。文本(卡号);
$('#Testlbl').html(cardno);
$('modalDeleteCardQuestion').modal();
};
到目前为止,代码“有效”。webgrid如图所示,单击链接调用javascript函数,并使用所有正确的参数。模式弹出框也会显示,当我单击模式弹出框中的“Ja”链接时,我的控制器功能被调用


我的问题是:当用户单击模式弹出窗口中的“Ja”链接时,如何获得发送到Javascript函数发送到控制器函数(“AdminCards”上的“DeleteCard”)的三个参数???

我想您可以使用ajax来实现这一点

首先,您可以去掉onclick并使用非结构化javascript。您可能需要在局部视图的隐藏字段中存储您需要发送的值(这对您来说是可能的,并且意味着没有风险)

然后,您可以进行一个ajax调用,并在主体中的success中加载您的视图。应该是这样的:

<input type="button" id="jaButton" value="Ja" class="btn btn-link" />
你当然可以用。如果你愿意的话,用它来做速记

或者,您可以在中使用此代码来代替ajax调用。单击

var cardId = $('#cardId').val(); // and so on getting the values using jquery
window.location = '@Url.Action("DeleteCard", "AdminCards")' + '?cardId=' + encodeURIComponent(cardId); //and the same with the rest of them
即使是最新代码的相同行,您也可以用这种方式使用replace(不要使用最后一行,而是用这一行交换)


最后,我稍微调整了mitomed的建议,当单击中的Delete链接时,将HiddenFields中所需的值保存在Javascript中。然后如上所述使用Ajax调用我的控制器函数。谢谢:-)