【发布时间】:2014-09-23 21:47:24
【问题描述】:
我正在 MVC 5 应用程序中创建一个动态用户控件。我的视图模型如下所示:
public class StoredProceduerParametersRecordViewModel
{
public string ProcedureName { get; set; }
public string ParameterName { get; set; }
public string ServerName { get; set; }
public object ParameterValue { get; set; }
//public object NewParameterName { get; set; }
}
NewParameterName 可以是 int、string、bool 或任何数据类型。
我正在从存储过程参数中获取 NewParameterName 值
List<StoredProcedureParameter> parameters = new List<StoredProcedureParameter>();
parameters = database.StoredProcedures[procedure.ProcedureName]
.Parameters.OfType<StoredProcedureParameter>()
.ToList();
foreach (var param in parameters)
{
StoredProceduerParametersRecordViewModel obj_parameter =
new StoredProceduerParametersRecordViewModel();
obj_parameter.ParameterName = param.Name;
obj_parameter.NewParameterName = CommonHelper.ConvertSmoToClsType(param.DataType.SqlDataType, string.Empty);
stored_procedure_parameters_list.Add(obj_parameter);
}
我的 CommonHelper.ConvertSmoToClsType 看起来像这样:
public static object ConvertSmoToClsType(SqlDataType dataType, string currentValue)
{
object Object = new object();
switch (dataType)
{
case SqlDataType.BigInt:
Object = (String.IsNullOrEmpty(currentValue)) ? (Int64)0 : Int64.Parse(currentValue);
break;
case SqlDataType.Bit:
Object = (String.IsNullOrEmpty(currentValue)) ? (Boolean)false : Boolean.Parse(currentValue);
break;
case SqlDataType.Char:
case SqlDataType.VarChar:
case SqlDataType.VarCharMax:
Object = (String.IsNullOrEmpty(currentValue)) ? String.Empty : currentValue;
break;
case SqlDataType.Real:
case SqlDataType.Numeric:
case SqlDataType.Float:
Object = (String.IsNullOrEmpty(currentValue)) ? 0D : Double.Parse(currentValue);
break;
and so on...
}
}
我正在尝试使用 HTML.Editor 来显示用户控件
@foreach (var obj in Model.List_StoredProceduresParametersRecords_ViewModel)
{
<tr id="@obj.ParameterName">
<td class="parameterName" data-value="@obj.ParameterName">@obj.ParameterName</td>
<td>@Html.Editor("NewParameterName")</td>
</tr>
}
我使用此链接引用了我的代码 ---> ASP.NET MVC3 Html.EditorFor and property of type object 但是,此解决方案不适用于列表。
如何在我的 foreach 循环中使用 Html.Editor 或 Html.EditorFor 显示控件?
【问题讨论】:
-
我在这篇文章中实际上没有看到问题?只是一堆代码?我错过了什么吗?
-
编辑器不显示该特定数据类型的用户控件。我在上一个代码中遗漏了什么?
标签: asp.net-mvc