Я хочу сказать, что мое решение было похоже на ответ, представленный на этой странице stackoverflow: ASP.NET MVC 4, несколько моделей в одном представлении?
Однако в моем case, этот запрос linq, который они использовали в своем контроллере, не работал для меня.
Этот запрос:
var viewModels =
(from e in db.Engineers
select new MyViewModel
{
Engineer = e,
Elements = e.Elements,
})
.ToList();
Следовательно, «по вашему мнению, просто укажите, что вы использование коллекции моделей взглядов "тоже не помогло мне.
Однако небольшая вариация этого решения действительно работала для меня. Вот мое решение в случае, если это кому-то поможет.
Вот моя модель взгляда, в которой я знаю, что у меня будет только одна команда, но у этой команды может быть несколько плат (и у меня есть папка ViewModels в моей папке Models btw, следовательно, пространство имен):
namespace TaskBoard.Models.ViewModels
{
public class TeamBoards
{
public Team Team { get; set; }
public List Boards { get; set; }
}
}
Теперь это мой контроллер. Это самое существенное отличие от решения в ссылке, упомянутой выше. Я создаю ViewModel для отправки по-другому.
public ActionResult Details(int? id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
TeamBoards teamBoards = new TeamBoards();
teamBoards.Boards = (from b in db.Boards
where b.TeamId == id
select b).ToList();
teamBoards.Team = (from t in db.Teams
where t.TeamId == id
select t).FirstOrDefault();
if (teamBoards == null)
{
return HttpNotFound();
}
return View(teamBoards);
}
Тогда, на мой взгляд, я не указываю его как список. Я просто делаю «@model TaskBoard.Models.ViewModels.TeamBoards». Тогда мне нужно только для каждого, когда я перебираю доски команд. Вот мое мнение:
@model TaskBoard.Models.ViewModels.TeamBoards
@{
ViewBag.Title = "Details";
}
Details
Team
@Html.ActionLink("Create New Board", "Create", "Board", new { TeamId = @Model.Team.TeamId}, null)
-
@Html.DisplayNameFor(model => Model.Team.Name)
-
@Html.DisplayFor(model => Model.Team.Name)
@foreach(var board in Model.Boards)
{
- @Html.DisplayFor(model => board.BoardName)
}
@Html.ActionLink("Edit", "Edit", new { id = Model.Team.TeamId }) |
@Html.ActionLink("Back to List", "Index")
Я довольно новичок в ASP.NET MVC, поэтому мне потребовалось немного времени, чтобы понять это. Поэтому я надеюсь, что этот пост поможет кому-то понять его проект за более короткий промежуток времени. : -)
cmds.polyColorPerVertex()
принимает кортеж rgb
в форме (r, g, b
), где каждый элемент должен иметь значение float
в диапазоне [0, 1]
.
«Оттенки серого» в данном контексте просто означает, что r == g == b
.
Соответственно, мы можем просто использовать генераторы случайных чисел Python для достижения этой цели:
brightness = np.random.rand() # generates a random float in the range [0, 1]
rgb = (brightness, brightness, brightness)
cmds.polyColorPerVertex(rgb=rgb)