Asp.net MVC在单击按钮时运行javascript - javascript

我有点弄乱了我的代码的逻辑,我不知道如何解决它。我有一个Bootstrap navtab面板,单击该选项卡时,根据单击的选项卡,它将在我的控制器中运行MVC C#函数。我实际上需要在单击按钮时发生这种情况。因此,用户在日期选择器中输入一个日期,单击“提交”,然后根据选择的选项卡运行功能。如何在单击按钮时执行此操作?

这是我的日期选择器和按钮:

<div class="row spiff-datepicksection">
            <div class="col-lg-6 pull-right">
                <div class="col-sm-5 col-lg-offset-4">
                    <div class="form-group">
                        <div class="input-group date">
                            <input id="startDate" type="text" class="form-control" />
                            <span class="input-group-addon">
                                <span class="glyphicon glyphicon-calendar"></span>
                            </span>
                        </div>
                    </div>
                </div>
                <div class="col-lg-3">
                    <input class="spiffdate-btn" type="submit" value="Submit" />
                </div>
            </div>
        </div>

这是我的JavaScript:

<script>
    $('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
        var wrongid = $('.tab-content .active').attr('id');
        $('a[data-toggle="tab"]').removeClass("active");
        $(this).addClass("active");
        var correctid = $(this).data("id");
        alert($('.tab-content .active')[0].outerHTML);

        var startDate = $('#startDate').val();

        if (correctid == "delayedspiff")
            $.get("@Url.Action("DelayedSpiffDate", "Dashboard")", { startDate: startDate });
        else
            $.get("@Url.Action("InstantSpiffDate", "Dashboard")", { startDate: startDate });

    });
</script>

这是我的控制器(如果需要):

public ActionResult DelayedSpiffDate(DateTime startDate)
    {
        var available = _appService.GetFeatureStatus(1, "spiffDashboard");
        if (!available)
            return RedirectToAction("DatabaseDown", "Error", new { area = "" });

        var acctId = User.AccountID;
        //startDate = DateTime.Today.AddDays(-6);  // -6
        var endDate = DateTime.Today.AddDays(1); // 1

        Dictionary<DateTime, List<SpiffSummaryModel>> dict = new Dictionary<DateTime, List<SpiffSummaryModel>>();

        try
        {
            var properties = new Dictionary<string, string>
            {
                { "Type", "DelayedSpiff" }
            };
            telemetry.TrackEvent("Dashboard", properties);

            dict = _reportingService.GetDailyDelayedSpiffSummaries(acctId, startDate, endDate);

        }
        catch (Exception e)
        {
            if (e.InnerException is SqlException && e.InnerException.Message.StartsWith("Timeout expired"))
            {
                throw new TimeoutException("Database connection timeout");
            }
            var error = _errorCodeMethods.GetErrorModelByTcError(PROJID.ToString("000") + PROCID.ToString("00") + "001", "Exception Getting DelayedSpiff Dashboard View", PROJID, PROCID);
            error.ErrorTrace = e.ToString();
            _errorLogMethods.LogError(error);
            return RedirectToAction("index", "error", new { error = error.MaskMessage });
        }

        var spiffDateModels = new List<DelayedSpiffDateModel>();

        foreach (var entry in dict)
        {
            var spiffDateModel = new DelayedSpiffDateModel();

            spiffDateModel.Date = entry.Key;

            spiffDateModel.Carriers = new List<DelayedSpiffCarrierModel>();

            foreach (var item in entry.Value)
            {
                var spiffCarrierModel = new DelayedSpiffCarrierModel();
                spiffCarrierModel.Carrier = item.CarrierName;
                spiffCarrierModel.CarrierId = item.CarrierId;
                spiffCarrierModel.ApprovedSpiffTotal = item.ApprovedSpiffTotal;
                spiffCarrierModel.EligibleActivationCount = item.EligibleActivationCount;
                spiffCarrierModel.IneligibleActivationCount = item.IneligibleActivationCount;
                spiffCarrierModel.PotentialSpiffTotal = item.PotentialSpiffTotal;
                spiffCarrierModel.SubmittedActivationCount = item.SubmittedActivationCount;
                spiffCarrierModel.UnpaidSpiffTotal = item.UnpaidSpiffTotal;
                spiffDateModel.Carriers.Add(spiffCarrierModel);
            }

            spiffDateModels.Add(spiffDateModel);
        }
        spiffDateModels = spiffDateModels.OrderByDescending(x => x.Date).ToList();

        return PartialView(spiffDateModels);
    }

关于如何通过单击按钮进行操作的任何想法?

参考方案

您可以尝试创建'click'事件的处理程序,该处理程序应检索所选选项卡的有效标识符并将GET请求发送到服务器。

$(".spiffdate-btn").click(function(){
    var correctid = $(".tab-content .active").attr("id");
    var startDate = $("#startDate").val();
    if (correctid == "delayedspiff")
        $.get("@Url.Action("DelayedSpiffDate", "Dashboard")", { startDate: startDate });
    else
        $.get("@Url.Action("InstantSpiffDate", "Dashboard")", { startDate: startDate });
});

ddl在服务器中未更新-asp.net - javascript

我在ASP.NET c#上工作。我有一个DropDownList。 (runat =“ server”)在$ {document).ready上,我更新了它的值:$(document).ready(function () { document.getElementById("ddl").value = "abc"; ……

ASP.NET-如何更改JSON序列化的方式? - javascript

我正在使用ASP.NET通过以下查询返回Json文件:public ActionResult getTransactionTotals(int itemID) { DBEntities db = new DBEntities(); var query = from trans in db.Transactions // Linq query removed …

ASP.NET MVC中应为DataTable返回哪种数据? - javascript

我想为DataTable中的每个页面创建动态加载信息。我正在尝试遵循以下示例:https://www.datatables.net/manual/server-sidehttps://www.datatables.net/manual/data来自示例的代码:$('#example').DataTable( { serverSide: t…

ASP.net WebForms-如何从代码隐藏获取html5数据属性? - javascript

即时通讯试图从HtmlControl获取数据属性(数据图标)...该数据属性是通过js函数设置的,但是当页面回发时,它返回(在代码后面)一个空字符串有什么办法,任何财产,否则就可以得到它?我的代码:HTML:<button id="btnIcon" runat="server" class="btn b…

javascript popupwindow之后的行如何工作? - javascript

好的,我有一个来自后面代码的方法,可以创建一个popupwindow。然后有一行代码要在那之后执行,我想知道那行代码何时执行,是在使用popupwindow之后执行还是在创建popupwindow之后执行?例如:void exPopupWindowMethod() { string scr = "window.open('exampleP…