Pessoal, estou tentando fazer um blog em mvc para treinar, mas travei aqui no upload de imagens. Deixarei o codigo abaixo. Codigo da view:
@model Blog.Entidades.Noticia
<h2>Cadastro Noticia</h2>
@using (Html.BeginForm("Inserir", "Noticia", FormMethod.Post))
{
@Html.LabelFor(n => n.Titulo, "Titulo:")
@Html.TextBoxFor(n => n.Titulo, new { @class="form-control" })
@Html.ValidationMessageFor(n => n.Titulo)
@Html.LabelFor(n => n.Texto, "Texto:")
@Html.TextBoxFor(n => n.Texto, new { @class="form-control" })
@Html.ValidationMessageFor(n => n.Texto)
@Html.LabelFor(n => n.CategoriaId, "Categoria:")
@Html.DropDownListFor(n => n.CategoriaId, new SelectList(ViewBag.Categorias, "Id", "Nome"), new { @class="form-control" })
//1 parametro SelectList -- qual a lista que quero pegar
//2 parametro - o que quero guardar e 3 o que quero mostrar
@Html.ValidationMessageFor(n => n.CategoriaId)
@Html.LabelFor(n => n.Capa, "Capa da Noticia:")
<input type="file" name="capa" id="capa" class="form-control" />
@Html.ValidationMessageFor(n => n.Capa)
<input type="submit" class="btn btn-success" value="Cadastrar / Alterar" />
}
Codigo do Controller:
public ActionResult Inserir(Noticia noticia, HttpPostedFileBase file)
{
if (ModelState.IsValid)
{
string pic = Server.MapPath(file.FileName);
string path = System.IO.Path.Combine(Server.MapPath("~/galeria"), pic);
file.SaveAs(path);
noticiaDAO.Inserir(noticia);
return RedirectToAction("Lista");
}
else
{
return View("Form", noticia);
}
}
O erro que da e o seguinte: "Object reference not set to an instance of an object." Na linha: "Line 41: string pic = Server.MapPath(file.FileName);"