我有以下观点: -
@model IEnumerable<MvcApplication4.Models.customers>
@{
ViewBag.Title = "customer";
}
<h3>Avialble cusotmer</h3>
<table id ="avilalbe">
<tr>
<th>
@Html.CheckBox("ORG_NAME ", true) NAME
</th>
<th>
@Html.CheckBox("description ", true) Description
</th>
</tr>
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.customer_NAME)
</td>
<td>
@Html.DisplayFor(modelItem => item.description)
</td>
</tr>
}
<a href=""> Extract To Excel </a>
如何根据复选框中的用户选择将模型数据提取到.csv中(要么包含名称和描述列,要么只包含其中一个)。
答案 0 :(得分:0)
如果我理解这个问题 - 只需使用对象转储器来解析值和名称,但说实话,我无法100%准确地告诉您上述问题的内容。
Objectdumper可在此处获得: http://blogs.msdn.com/b/ericwhite/archive/2008/08/14/object-dumper-an-invaluable-tool-for-writing-code-in-the-functional-programming-style.aspx
答案 1 :(得分:0)
创建一个方法(类似的东西)
private static string GetCsvString(IEnumerable<Customer> customers, string separator, params string[] fields)
{
var csvString = new StringBuilder();
var propertyInfos = typeof (Customer).GetProperties().Where(p => fields.Contains(p.Name)).ToList();
foreach (var customer in customers)
{
var currentCustomer = customer;
csvString.AppendLine(string.Join(separator, propertyInfos.Select(p => p.GetValue(currentCustomer, null).ToString())));
}
return csvString.ToString();
}
然后使用它:
var csvString = GetCsvString(yourSetOfCustomers, ";", "name", "description");
File.WriteAllText("yourPath.csv", csvString);
如果您只需要说明,请致电:
GetCsvString(yourSetOfCustomers, ";", "description");
我假设您知道如何识别您需要的字段(根据您对我的评论的回答)。希望你明白了。