我正在填充一个输入字段值,有时该值存在,有时不存在,我需要检查该值是否为空,如果不是,则不显示任何内容。我当前的代码正在使用 .IsNullOrEmpty :
<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
谢谢
编辑:这是我最终使用的代码:
Helpers.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")" />
最佳答案
为什么要在 View
中执行此操作?在填充 ViewModel
时,您必须检查 Controller 中的这些条件,如下所示:
public class ViewModel
{
public string QueryValue {get ; set;}
}
在您的 Controller 方法中,您只需填充此模型并将其返回到 View 页面。
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);
}
因此,您的 View 将简单地变成
@model ViewModel
<input id="lead-entry" class="form-textbox" type="text" size="5" name="q15_2013Collections[0][]" value="@Model.QueryValue" />
关于c# - 检查 C# 中的空值 - Webmatrix,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17218951/