Por favor pessoal, tenho meu codigo com o das aulas enão consigo resolver esse problema. Podem me ajudar, por favor?
Quando executo a página de /Produto/Form
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Form</title>
</head>
<body>
<div>
<form action="/CategoriaDoProduto/Adiciona" method="post">
@Html.ValidationMessage("produto.Invalido")
<label for="nome">Nome: </label>
<input id="nome" name="produto.Nome" value="@ViewBag.Produto.Nome"/>
@Html.ValidationMessage("produto.Nome")
<label for="preco">Preco: </label>
<input id="preco" name="produto.Preco" value="@ViewBag.Produto.Preco" />
<br>
<label for="categoria">Categoria: </label>
<!--<input id="categoria" name="produto.CategoriaId" />-->
<select id="categoria" name="produto.CategoriaId" />
@foreach (var categoria in ViewBag.Categorias)
{
<option value="@categoria.Id" selected="@categoria.Id.Equals(ViewBag.Produtos.CategoriaId)">
@categoria.Nome
</option>
}
</select>
<br>
<label for="quantidade">Quantidade: </label>
<input id="quantidade" name="produto.Quantidade" value="@ViewBag.Produto.Quantidade" />/>
<br>
<label for="descricao">Descricao: </label>
<input id="descricao" name="produto.Descricao" value="@ViewBag.Produto.Descricao" />/>
<br><br>
<input type="submit" value="Cadastrar" />
</form>
</div>
</body>
</html>
o código do ProdutoController
public ActionResult Form()
{
CategoriasDAO categoriasDAO = new CategoriasDAO();
IList<CategoriaDoProduto> categorias = categoriasDAO.Lista();
ViewBag.Categorias = categorias;
ViewBag.Produto = new Produto();
return View();
}
[HttpPost]
public ActionResult Adiciona(Produto produto )
{
int idDaInformatica = 1;
if(produto.CategoriaId.Equals(idDaInformatica) && produto.Preco < 100)
{
ModelState.AddModelError("produto.Invalido", "Informatica com preco abaixo de 100 reais ");
}
if(ModelState.IsValid)
{
ProdutosDAO dao = new ProdutosDAO();
dao.Adiciona(produto);
return RedirectToAction("Index", "Produto");
}
else
{
ViewBag.Produto = produto;
CategoriasDAO categoriasDAO = new CategoriasDAO();
ViewBag.Categorias = categoriasDAO.Lista();
return View("Form");
}
}
Recebo oa avisos: Warning 1 Element 'option' cannot be nested inside element 'form'. C:\Users\gg\Desktop\Alura\CaelumEstoque\Views\Produto\Form.cshtml 33 26 CaelumEstoque
Warning 2 End tag is missing matching start tag C:\Users\gg\Desktop\Alura\CaelumEstoque\Views\Produto\Form.cshtml 37 15 CaelumEstoque
<select id="categoria" name="produto.CategoriaId" />
@foreach (var categoria in ViewBag.Categorias)
{
<option value="@categoria.Id" selected="@categoria.Id.Equals(ViewBag.Produtos.CategoriaId)">
@categoria.Nome
</option>
}
</select>
e erro em: http://localhost:51270/Produto/Form **Nao executa
An exception of type 'Microsoft.CSharp.RuntimeBinder.RuntimeBinderException' occurred in System.Core.dll but was not handled in user code
Additional information: Uma referencia null nao pode ser executada