Присвоить случайный цвет вершине в диапазоне серой шкалы

Я хочу сказать, что мое решение было похоже на ответ, представленный на этой странице 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, поэтому мне потребовалось немного времени, чтобы понять это. Поэтому я надеюсь, что этот пост поможет кому-то понять его проект за более короткий промежуток времени. : -)

1
задан boomstick 31 March 2019 в 02:09
поделиться

1 ответ

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)
0
ответ дан gmds 31 March 2019 в 02:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: