У меня есть вид страницы MachineInfo который я показываю 60 различных спецификаций соответствующей машины, как процессор информации, барана информация, информация на диске, дб информации и т.д.Фильтрация по параметру & Routing
ActionLink на этой странице :
@Html.ActionLink("Machine Info", "MachineInfo", new { id = Model.LicenseKey }) |
контроллер:
public ActionResult MachineInfo(string LicenseKey)
{
if (LicenseKey == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
Farm farm = db.Farms.Find(LicenseKey);
if (farm == null)
{
return HttpNotFound();
}
return View(farm);
}
Farm Модель:
public partial class Farm
{
public Farm()
{
this.FarmChanges = new HashSet<FarmChange>();
this.FarmDetails = new HashSet<FarmDetail>();
this.FarmTables = new HashSet<FarmTable>();
}
public int Id { get; set; }
public string LicenseKey { get; set; }
public string Name { get; set; }
public string CustomerName { get; set; }
public virtual ICollection<FarmChange> FarmChanges { get; set; }
public virtual ICollection<FarmDetail> FarmDetails { get; set; }
public virtual ICollection<FarmTable> FarmTables { get; set; }
}
FarmDetails Модель:
public partial class FarmDetail
{
public System.Guid Id { get; set; }
public int FarmId { get; set; }
public int Type { get; set; }
public string Name { get; set; }
public string Value { get; set; }
public virtual Farm Farm { get; set; }
}
Все MachineInfo исходит от "Value" в таблице FarmDetails.
Вид:
@model IEnumerable<FarmManagement.Models.FarmDetail>
@{
ViewBag.Title = "Machine Info";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>Machine Info</h2>
<table class="table">
<tr>
<th>
@Html.DisplayNameFor(model => model.Type)
</th>
<th>
@Html.DisplayNameFor(model => model.Name)
</th>
<th>
@Html.DisplayNameFor(model => model.Value)
</th>
<th>
@Html.DisplayNameFor(model => model.Farm.LicenseKey)
</th>
<th></th>
</tr>
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.Type)
</td>
<td>
@Html.DisplayFor(modelItem => item.Name)
</td>
<td>
@Html.DisplayFor(modelItem => item.Value)
</td>
<td>
@Html.DisplayFor(modelItem => item.Farm.LicenseKey)
</td>
<td>
</td>
</tr>
}
</table>
@Html.ActionLink("Back to Farms List", "Index")
Я пытаюсь показать MachineInfo конкретной машины (LicenseKey = ABXYZ-XYZAB) с этим URL: mydomain.com/MachineInfo/ABXYZ-XYZAB
Мне нужно фильтр вид LicenseKey.
После моих всех попыток, я получаю только 400 - Bad Ошибка запроса (Поскольку LicenseKey == NULL) или получить MachineInfo из ВСЕ машины, а не конкретная машина с LicenseKey = ABXYZ-XYZAB.
Что я делаю неправильно?
вместо 'общественного ActionResult MachineInfo (строка LicenseKey)' 'использовать общественный ActionResult MachineInfo (строка идентификатор)' .... 'LicenseKey' всегда будет нулевым, потому что вы ничего в ней не устанавливать ... –
@Kartikeya дает ошибку: элемент модели, переданный в словарь, имеет тип «System.Data.Entity.DynamicProxies.Farm_BDB4A56137C4065DC20A78957B4843D725D3B41972D06982AC6CA0308623C051», но для этого словаря требуется элемент модели типа «System.Collections.Generic.IEnumerable'1 [ FarmManagement.v2.Models.FarmDetail] ' –