gpt4 book ai didi

asp.net-mvc-3 - 通过一个 Action 对两个模型执行创建操作

转载 作者:行者123 更新时间:2023-12-02 07:44:08 24 4
gpt4 key购买 nike

我有两个模型:CategoryPicture,分别指两个表,Categories 和Pictures。 Category 模型具有到 Picture 模型的导航属性。

现在,我使用脚手架功能和类别的 CRUD 操作创建了一个 Controller 。以下是代码:-

public ActionResult Create()
{
ViewBag.ParentCategoryId = new SelectList(db.Categories, "Id", "Name");
ViewBag.PictureId = new SelectList(db.Pictures, "Id", "PictureUrl");
return View();
}

自动生成的 Controller 操作使用 SelectList 列出数据库中可用的图片条目,并将其向下传递到下拉列表以供选择。这不是理想的场景,因为我想要的是无法让用户上传图片,然后将引用添加到类别模型。稍后,条目将保存到类别和图片表中。

最佳答案

像这样创建模型:

public class FullCategoryModel
{
public HttpPostedFileBase Picture { get; set; }
public Category CategoryModel {get; set;}
}

在 View 中:

@using (Html.BeginForm("Create", "Category", FormMethod.Post, 
new { enctype = "multipart/form-data" }))
{
@Html.TextBoxFor(model => model.Category.Name) // example, put there all category details
<input type="file" name="Picture" id="Picture" />
<input type="submit" value="Upload" />

}

然后创建 Action :

[ActionName("Create")]
[HttpPost]
public ActionResult Create(FullCategoryModel model)
{
// here you can get image in bytes and save it in db,
// also all category detail are avalliable here

MemoryStream ms = new MemoryStream();
model.Picture.InputStream.CopyTo(ms);
Image picture = System.Drawing.Image.FromStream(ms);

// save in db as separate objects, than redirect
return RedirectToAction("Index", "Category");
}

关于asp.net-mvc-3 - 通过一个 Action 对两个模型执行创建操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8310746/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com