Solucionado (ver solução)
Solucionado
(ver solução)
8
respostas

Não entendi o que tem pra fazer aqui

Entendi nada alguém pode me ajudar ?!

8 respostas
solução!

Oi Flávio!

O que você precisa fazer é entrar na pasta Models do seu projeto e criar uma classe com nome "Sexo", mas trocar a palavra-chave "class" por "enum" e criar os atributos como o exercício pede.

Depois vá na classe de Usuários e crie um atributo do tipo Sexo que criou, com os gets e sets necessários.

Entendeu?

Valew Erick, agora sim consegui.

Olá Eric,

poderia me dizer qme por favor como criar utilizar o HtmlHelper no Form, seria um DropDownList? tentei de várias vármas, com e sem Lambda e nao consegui entender. Obrigado

        @Html.LabelFor(u => u.Sexo, "Sexo: ")
        @Html.DropDownList("Sexo")
        @Html.ValidationMessageFor(u => u.Sexo)
namespace LojaRazor.Models
{
        public enum Sexo
        {
            Masculino,
            Feminino
        }

}
namespace LojaRazor.Models
{
    public class Usuario
    {
        [Required]
        public String Nome { get; set; }

        [Required, EmailAddress]
        public String Email { get; set; }

        [Required] //ou sem?
        public Sexo Sexo { get; set; }

Olá Graziela,

Você pode tentar criar a sua DropDownList com o HtmlHelper da seguinte forma:

@Html.DropDownListFor("u => u.Sexo",
        new SelectList(Enum.GetValues(typeof(Sexo))),
        "Selecione o Gênero");

Dessa forma você deve conseguir criar a DropDownList populada com o Enum que criou. Tenta fazer assim e depois me fala se conseguiu.

Atenciosamente,

Erick

Erick, deu o seguinte erro: Aviso de erro de compilacao :CS024: O tipo ou namespace 'Sexo' nao pode ser encontrado. (Falta uma directiva using ou uma referencia assembly?)

Compilerfehlermeldung: CS0246: Der Typ- oder Namespacename 'Sexo' konnte nicht gefunden werden. (Fehlt eine Using-Direktive oder ein Assemblyverweis?)

Fonte de erro:

Zeile 16: @Html.ValidationMessageFor(u => u.Sexo)@ Zeile 17: Zeile 18: @Html.DropDownListFor("u => u.Sexo", new SelectList(Enum.GetValues(typeof(Sexo))), "Selecione o Gênero"); Zeile 19: Zeile 20: @Nome: *@

Fonte de dados: c:\Users\graziela\Desktop\Alura\ASP.NET Razor\LojaRazor\Views\Usuarios\Form.cshtml Zeile: 18

eu já havia tentado por o @@model LojaRazor.Models.Sexo@ mas tinha dado erro por ja existir o @model LojaRazor.Models.Usuario

Também recebo este erro no DropDownListFor: Error 2 The type arguments for method 'System.Web.Mvc.Html.SelectExtensions.DropDownListFor(System.Web.Mvc.HtmlHelper, System.Linq.Expressions.Expression>, System.Collections.Generic.IEnumerable, string)' cannot be inferred from the usage. Try specifying the type arguments explicitly. c:\Users\graziela\Desktop\Alura\ASP.NET Razor\LojaRazor\Views\Usuarios\Form.cshtml 18 10 LojaRazor

O que pode estar mal? Só fiz um copy/paste de teu código acima :) Obrigado pela forca!!! :)

Graziela,

O que você pode tentar é incluir no topo do arquivo cshtml apenas o @model LojaRazor.Models.Usuario e no código pode deixar assim:

@Html.LabelFor(u => u.Sexo, "Gênero")
@Html.DropDownList("Sexo",
            new SelectList(Enum.GetValues(typeof(Gender))),
            "Gênero:",
            new { @class = "form-control" })
@Html.ValidationMessageFor(u => u.Sexo)

Se caso não der certo, vou dar uma olhada para você depois. Estou no trabalho e só posso ver em casa, OK?

Oh Erick agradeco muito pela a ajuda,

Nao quero atrapalhar, por isto é para quando puderes claro :)

recebi o mesmo erro O tipo ou namespace 'Gender' nao pode ser encontrado. (Falta uma directiva using ou uma referencia assembly?)

Nunca tinha trabalhado com MVC antes e estou a pegar pratica de programacao deste genero aqui no Alura :)

Agradeco a ajuda para quando possas. Obrigadissimo

Estou tendo o mesmo problema no typeof(Gender)))

Já tentei Gender, Sexo,...

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software