piszę bardzo małą aplikację z mvc4 i Entity Framework 5.Entity Framework 5 Kod pierwszy dodając zdjęcie
Chcę dodać produkt i sklep i wizerunku dla tego produktu.
Mam modelu
[Table("CatalogItem")]
public class CatalogItemModel
{
[Key]
public int CatalogItemId { get; set; }
public string Description { get; set; }
public double Price { get; set; }
public int ProductCount { get; set; }
public string Size { get; set; }
public string Sku { get; set; }
[Column(TypeName = "image")]
public byte[] Image { get; set; }
[Display(Name = "Display Catalog Item")]
public bool DisplayItem { get; set; }
}
mojego kontrolera. To nigdy nie zostaje trafione.
[HttpPost]
public ActionResult Create(CatalogItemModel catalogitemmodel)
{
if (ModelState.IsValid)
{
db.CatalogItemModels.Add(catalogitemmodel);
db.SaveChanges();
return RedirectToAction("Index");
}
return View(catalogitemmodel);
}
Moje poglądy tworzą
<fieldset>
<legend>CatalogItemModel</legend>
<div class="editor-label">
@Html.LabelFor(model => model.Description)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Description)
@Html.ValidationMessageFor(model => model.Description)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.Price)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Price)
@Html.ValidationMessageFor(model => model.Price)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.ProductCount)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.ProductCount)
@Html.ValidationMessageFor(model => model.ProductCount)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.Size)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Size)
@Html.ValidationMessageFor(model => model.Size)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.Sku)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Sku)
@Html.ValidationMessageFor(model => model.Sku)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.DisplayItem)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.DisplayItem)
@Html.ValidationMessageFor(model => model.DisplayItem)
</div>
<div class="editor-label">
@Html.LabelFor(m=>m.Image)
</div>
<input name="Image" type="file"/>
<p>
<input type="submit" value="Create" />
</p>
</fieldset>
Przy próbie opublikowania nowy katalog z obrazem w moim pliku wejściowego jednak zgłasza błąd
Wejście nie jest poprawnym Base- 64 ciąg znaków, ponieważ zawiera 64-znakowy znak bazowy, więcej niż dwie litery dopełniające lub niedozwolony znak wśród znaków dopełniających.
Czy możesz dodać kod, do którego przypisujesz obraz? –
@NickW właśnie dodał działanie kontrolera. Dodałem punkt przerwania, ale nigdy nie zostanie trafiony –
Co z 'catalogitemmodel'? Jak to się tworzy? Jeśli punkt przerwania nie zostanie trafiony, problem jest wcześniejszy. –