mam następujące wiersze Razor teraz:ASP.NET MVC Razor Główki i widoki dla każdej kolumny Dynamicznie
<table border=1 cellpadding=3 cellspacing=1 rules="rows" frame="box">
<tr>
<th>Türkçe Söz Dizisi</th>
<th>English Word Sequence</th>
<th></th>
</tr>
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.Tr)
</td>
<td>
@Html.DisplayFor(modelItem => item.En)
</td>
<td>
@Html.ActionLink((String)@ViewBag.Edit, "Edit", new { id=item.ID }) |
@Html.ActionLink((String)@ViewBag.Delete, "Delete", new { id=item.ID })
</td>
</tr>
}
</table>
Jednak dodam kilka kolumn automatycznie z programu do tabeli bazy danych. Potrzebuję sposobu, aby wydrukować odpowiednio te i td. Krótko mówiąc, potrzebuję sposobu na przejście przez dynamiczne kolumny modelu. Jak mogę to osiągnąć?
EDIT: Mój typ modelu to "Wniosek". Jednak chcę osiągnąć dynamiczny atrybut Proposal.Type.Word (Tr, En lub dowolną inną dodaną enumę językową). Jak mogę?
@foreach (var item in Model) {
Type objectType = Type.GetType(typeof(RexamOneriSistemi.Models.Word).AssemblyQualifiedName);
System.Reflection.PropertyInfo[] fields = objectType.GetProperties();
<tr>
<td>@Html.DisplayFor(modelItem => item.ID)</td>
<td>@Html.DisplayFor(modelItem => item.Owner.Name)</td>
@foreach (System.Reflection.PropertyInfo f in fields) {
if (f.Name.ToString() == @HttpContext.Current.Session["Language"].ToString())
{
<td>
// What to do here exactly to get item.Type.Word.[dynamic attribute]?
</td>
}
</tr>
}
mogę Razor String
string s = "@Html.Displayfor(modelItem => item.Type.Word." + System.Web.HttpContext.Current.Session["Language"] + ")"
Resulting: @Html.Displayfor(modelItem => item.Type.Word.Tr)
mogę wstawić ciąg być renderowany jako składni Razor? Jeśli tak, w jaki sposób?
Czy Twój widok jest mocno napisany? –
Tak lub nie, nie ma znaczenia. Mogę się zmienić zgodnie z każdą działającą odpowiedzią na moje pytanie. –