2016-11-07 5 views
0

Ich habe Schwierigkeiten, Werte von JS an MVC actionresult zu übergeben. Unten ist mein JS-Code, in dem ich JqGrid auffüllen möchte. Während des Debuggens kommen die Werte beider Parameter als null. Ich überprüfte die requestURL in der Konsole, die es korrekt generiert, aber die Werte werden als null übergeben.Ich kann den Querystring-Wert nicht in MVC4 abrufen Aktionsergebnis

HTML Teilansicht

<form> 
        <table> 
         <tr> 
          <td> 
           <input type="text" id="exchangePlanId" title="Exchange Plan Id", placeholder = "Exchange Plan Id" /> 
          </td> 
          <td> 
           <input type="text" id="planYear" title="Plan Year" , placeholder="Plan Year" /> 
          </td> 
          <td> 
           <input type="submit" id="getFilteredData" onclick="getFilteredProductData()"value="Filter" class="appButton" /> 
          </td> 
         </tr> 
        </table> 
       </form> 

Front End JS-Code:

function getFilteredProductData() { 
var exchangePlanId = document.getElementById('exchangePlanId').value; 
var planYear = document.getElementById('planYear').value; 
var requestURL = '/RxProductData/FilterRxProductData/?' + "exchangePlanId=" + exchangePlanId + "&planYear=" + planYear; 
console.log(requestURL); 
$(function() { 
    $('#listGrid').jqGrid({ 
     url: requestURL, 
     datatype: 'json', 
     mtype: 'Get', 
     colName: ['Id', 'ExchangePlanID', 'OracleFinanceMarketNbr', 'IssueStateCode', 'PlanID', 'PrimaryPlatformCode', 'PlanYear', 'VersionRefID'], 
     colModel: [ 
      { key: true, hidden: true, name: 'Id', index: 'Id' }, 
      { key: false, name: 'ExchangePlanID', index: 'ExchangePlanID' }, 
      { key: false, name: 'OracleFinanceMarketNbr', index: 'OracleFinanceMarketNbr' }, 
      { key: false, name: 'IssueStateCode', index: 'IssueStateCode' }, 
      { key: false, name: 'PlanID', index: 'PlanID' }, 
      { key: false, name: 'PrimaryPlatformCode', index: 'PrimaryPlatformCode' }, 
      { key: false, name: 'PlanYear', index: 'PlanYear' }, 
      { key: false, name: 'VersionRefID', index: 'VersionRefID' }], 
     pager: jQuery('#pager'), 
     rowNum: 10, 
     rowList: [10, 20, 30, 40], 
     height: '100%', 
     width: 'auto', 
     viewrecords: true, 
     caption: 'Rx Calc Product Data', 
     emptyrecords: 'No records to display', 
     jsonReader: { 
      root: "rows", 
      page: "page", 
      total: "total", 
      records: "records", 
      repeatitems: false, 
      Id: "0" 
     }, 
     autowidth: true, 
     multiselect: false 
    }) 
}); 

}

Hier ist der Code nicht am Ende.

[HttpPost] 
    public JsonResult FilterRxProductData(string exchangePlanId, string planYear,int rows, int page = 1, string transactionGUID = DefaultTransactionId) 
    { 
     Guid transactionGuid = base.CalculateGuid(transactionGUID); 
     var rxProductDataList = crossRefBll.GetAllRxProductData(transactionGuid); 
     if (rxProductDataList != null && rxProductDataList.Count > 0) 
     { 
      if (exchangePlanId != null && planYear == null) 
      { 

      } 
      else if (exchangePlanId == null && planYear != null) 
      { 

      } 
      else 
      { 

      } 
      int totalRecords = rxProductDataList.Count; 
      var totalPages = (int)Math.Ceiling((float)totalRecords/(float)rows); 
      var jsonData = new 
      { 
       total = totalPages, 
       page, 
       records = totalRecords, 
       rows = rxProductDataList 
      }; 
      return Json(jsonData, JsonRequestBehavior.AllowGet); 
     } 
     else 
     { 
      throw new Exception("No Rx Product Data was Returned : GetAllRxProductData"); 
     } 

    } 
+0

Sie liefern keinen Standardwert für Zeilen in Ihrem Controller. Und Sie übergeben keinen Zeilenparameter in Ihrer 'requestURL' –

+0

@FusRoDah Ich bekomme immer noch null in ExchangePlanId und PlanYear. – S7H

+0

Entfernen Sie den letzten Schrägstrich (/) in 'requestUrl' – JB06

Antwort

0

ich verwendet habe, Httppost über meine JsonResult Attribut, das ist, warum ich nicht in der Lage war, den Abfragezeichenfolgeflag Wert zu erhalten.

So albern von mir. :/

Korrektes Attribut zu verwenden ist [HttpGet] Yay !!

Verwandte Themen