2015-06-04 54 views
-1

這裏是方法:如何檢查是否值是多個或不鍵值C#

protected override void OnActionExecuting(ActionExecutingContext filterContext) 
{ 
    var parameters = filterContext.ActionParameters.ToArray(); 
    if (parameters.Count() > 0) 
    { 
     foreach (KeyValuePair<string, object> data in parameters) 
     { 
      singleparameters = singleparameters + data.Key + ":" + " " + data.Value + ","; 

     } 
     singleparameters = singleparameters.Remove(singleparameters.LastIndexOf(',')); 

我要檢查,如果數據值包含單個或多個值。

如果數據是單數據,那麼key:reqvalue: pagerecords:200

如果數據中包含多個值,則檢查值是否包含數組或單值。 FOT例如:key:reqvalues: pagerecords:200, pageinfo:"adsa", count:0, filter: records:200,cotnain:"asa"

我要檢查的條件訪問的..

我是新手在這個領域,所以請給我任何建議 更多的澄清 keyvaluepair

+0

我覺得很難理解你的問題 – Automatico

+0

mm..in總之我要檢查,如果值是單個或多個,如果多個然後再次檢查是否包含數組或只是單個值@ Cort3z – Dhara

+0

這是不明確你的意思是「單一」價值或「多重」價值。你以哪種格式發送參數?請給我一個樣品。 –

回答

0
foreach (KeyValuePair<string, object> data in parameters) 
{ 
     if (data.Key == "request" && data.value is jqGridRequest) 
     { 
     var fields = g.GetType().GetProperties(); 
     bool hasSingleValue = fields.Count(x => x.GetValue(g, null) != null) == 1; 
     } 
} 

從截圖其明確表示,data.value類型是jqGridRequest,所以我們可以直接利用對象的檢查或獲得所需的價值,其實你不需要做循環也,直接投射對象並使用其他屬性。

jqGridRequest request = data.value as jqGridRequest; 
if (request != null) 
{ 
int pageindex = request.PageIndex; 
//// so on other properties, get it and use it directly without looping. 
} 
+0

Thanku so much..its working ..有第二個問題也在多值如果單值或多個值.. ..檢查.. .. – Dhara

+0

@debin,我的意思是,數據在jqGridRequest內部序列化,所以你可以通過設置條件來執行你想要的任務。但是,如果你真的想知道它的多或單,那麼你可以使用var fields = g.GetType()。GetProperties(); bool hasSingleValue = fields.Count(x => x.GetValue(g,null)!= null)== 1;這個知道它是否是單值的,如果它是單值的,那麼除了一個以外,將會有所有的屬性值爲null,否則就是它的倍數。 – Dreamweaver

+0

感謝您的回覆:)但我得到一個錯誤,而有一個單一的值'參數不匹配...... ..你有什麼想法嗎? – Dhara

0

這可以幫助您檢查值爲單個或多個:

var valueFields = data.Value.GetType().GetFields(); 
var fieldNumber = valueFields.Length; 
//If fieldNumber = 1 it is single, otherwise it is multiple 

然後你可以檢查它是否包含任何陣列

foreach(var fld in valueFields) { 
    bool isArray = fld.FieldType.IsArray; //true if the field is an array 
} 
+0

http://www.nudoq.org/#!/Packages /Lib.Web.Mvc/Lib.Web.Mvc/JqGridRequest 從鏈接清楚,JqGridRequest將具有屬性而不是字段。所以你的解決方案可能無法在這裏工作, – Dreamweaver

+0

我沒有使用JQGrid,所以我只是假設它是一個普通的對象:) –

+0

thnx它也幫助:) – Dhara

相關問題