2013-06-20 33 views
1

我正在填充輸入字段值,有時值存在,有時它不需要檢查值是否爲空,如果不是,則不顯示任何內容。我當前的代碼是用.IsNullOrEmpty:在C#中檢查空值 - Webmatrix

<input id="lead-entry" class="form-textbox" type="text" size="5" name="q15_2013Collections[0][]" 
value="@(queryinputvalue.FirstOrDefault(r => r.field_name.Equals("q15_2013Collections[0][]")).field_data.IsNullOrEmpty 
     ? "" 
     : queryinputvalue.FirstOrDefault(r => r.field_name.Equals("q15_2013Collections[0][]")).field_data) " /> 

這給我的錯誤:

Exception Details: Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: Cannot perform runtime binding on a null reference 

感謝

編輯:這是我最後使用的代碼:

助手。 cshtml

@helper checkEmpty(IEnumerable<dynamic> queryinputvalue, string field_id) {  
    var reqValue = queryinputvalue.FirstOrDefault(r => r.field_name.Equals(field_id)); 
    var return_value = ""; 
    if(reqValue != null){ 
     return_value = reqValue.field_data; 
    } else { 
     return_value = ""; 
     } 
    @return_value 
} 

在頁面

@{ 
IEnumerable<dynamic> queryinputvalue = db.Query("SELECT * FROM document_data WHERE doc_id = @0", doc_id); 
} 

<input type="text" class=" form-textbox" id="input_4" name="q4_arborLoan" size="20" value="@Helpers.checkEmpty(queryinputvalue,"q4_arborLoan")" /> 

回答

4

你爲什麼在View這樣做呢?你必須在控制器來檢查這些條件,同時如下填充您的ViewModel

public class ViewModel 
{ 
    public string QueryValue {get ; set;} 
} 

而在你的控制方法,你能簡單地填充此模型和視圖頁面返回。

public ActionResult MyMethod() 
{ 
    ViewModel model = new ViewModel(); 
    //Get someValue from anywhere. 
    string reqValue = someValue.FirstOrDefault(r => r.field_name.Equals("q15_2013Collections[0][]")); 
    string queryValue = string.Empty(); 
    if(queryValues != null) 
    { 
     queryValue = string.IsNullOrEmpty(reqValue .field_data) 
        ? "" 
        : reqValue .field_data; 
    } 
    model.QueryValue = queryValue ;    
    return View(model); 
} 

所以,你的瀏覽只會成爲

@model ViewModel 

<input id="lead-entry" class="form-textbox" type="text" size="5" name="q15_2013Collections[0][]" value="@Model.QueryValue" /> 
+0

我不使用MVC。但上面的代碼有很大幫助。我創建了一個基於你的代碼的@helper,並且運行良好。修改後的代碼如下。 –