Как мне показать свойство, помеченное тегом «Hiddeninput» - PullRequest
0 голосов
/ 14 июля 2011

Я работаю над своим первым проектом MVC3. Я использую linq для sql. У меня есть одна таблица в базе данных под названием «Учебник». Я использую linq, чтобы sql дизайнер генерирует файл dbml. затем создайте класс приятеля для оценки.

            namespace Tut.DomainModel.Entities
            {
                [MetadataType(typeof(TutorialMetadata))]
                public partial class Tutorial
                {
                    public sealed class TutorialMetadata
                    {
                        [HiddenInput(DisplayValue = false)]
                        public int TutorialID { get; set; }

                        [Required(ErrorMessage = "Title is required")]
                        [StringLength(250, MinimumLength = 10, ErrorMessage = "Title must be between 10 and 250 characters")]
                        public string Name { get; set; }

                        [HiddenInput(DisplayValue = false)]
                        public DateTime PostDate { get; set; }

                    }

                }
            }

В моем файле TutorialsController.cs у меня есть 2 действия. один - «Список», другой - «Пост».

            public ViewResult List()
            {
                return View(reposi.Tutorials.ToList());
            }

            public ViewResult Post()
            {
                return View();
            }

            [HttpPost]
            public ActionResult Post(Tutorial tutorial)
            {
                if (ModelState.IsValid)
                {
                    reposi.Add(tutorial);
                    reposi.Save();

                    return RedirectToAction("List");
                }
                else
                {
                    return View();
                }
            }

Я пометил «PostDate» как скрытое поле, потому что мне не нужно показывать его при создании нового сообщения. Я просто назначаю ему текущую дату.

но на моей странице списка я хочу показать дату публикации, однако она не отображается, потому что она помечена как "HiddenInput" в классе модели

1 Ответ

0 голосов
/ 14 июля 2011

как это исправить?

Используя разные модели вида для каждого вида.Поэтому, если в view1 вы хотите скрытое поле, вы создаете для него модель представления и украшаете свойство атрибутом HiddenInput.И если view2 необходимо показать значение, вы разрабатываете для него другую модель представления, у которой нет этого атрибута.

Вывод: вы всегда должны создавать модель представления для каждого представления.Модель представления тесно связана с требованиями данного представления, и требования меняются от представления к представлению => различные модели представления.

Худшая ошибка - попытаться повторно использовать одну и ту же модель представления в разных представлениях.Это приводит к таким вопросам и проблемам, как та, с которой вы сталкиваетесь в настоящее время.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...