Здесь у меня есть MainController, в котором у меня есть два действия с именем Create и PhotoUpload. Вот код для действия Create.Как разместить представление в другом представлении в asp.net MVC?
// GET: Main/Create
public ActionResult Create()
{
return View();
}
// POST: Main/Create
// To protect from overposting attacks, please enable the specific properties you want to bind to, for
// more details see http://go.microsoft.com/fwlink/?LinkId=317598.
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include = "Email,Password,FirstName,LastName,Gender,Birthday,ProfileImage,AboutUser")] User user)
{
if (ModelState.IsValid)
{
db.Users.Add(user);
db.SaveChanges();
return RedirectToAction("Index");
}
return View(user);
}
Вот код для действия PhotoUpload.
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult PhotoUpload(PhotoModel model)
{
if (model.PhotoFile.ContentLength > 0)
{
var fileName = Path.GetFileName(model.PhotoFile.FileName);
var filePath = Server.MapPath("/Content/Users/Images");
string savedFileName = Path.Combine(filePath, fileName);
model.PhotoFile.SaveAs(savedFileName);
}
return View(model);
}
public ActionResult PhotoUpload()
{
return View();
}
И это модели пользователей и фотографий. Это модель пользователя
public partial class User
{
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
public User()
{
this.Friends = new HashSet<Friend>();
this.Friends1 = new HashSet<Friend>();
this.Photos = new HashSet<Photo>();
}
public int UserId { get; set; }
public string Email { get; set; }
public string Password { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Gender { get; set; }
public System.DateTime Birthday { get; set; }
public string ProfileImage { get; set; }
public string AboutUser { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<Friend> Friends { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<Friend> Friends1 { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<Photo> Photos { get; set; }
}
Это фотомодели
public class PhotoModel
{
[Required]
public HttpPostedFileBase PhotoFile { get; set; }
}
И это то, что я получаю как вид в настоящее время. Это мой/Главный/Создать Просмотреть
И это мой/Главный/PhotoUpload Посмотреть
Теперь я хочу поставить эту точку зрения PhotoUpload вместо ProfileImage
вещей внутри моего Create View. Где я могу изменить это и как?
Вы можете использовать встроенные в конвенциях? '@ Html.EditorFor (x => x.PhotoFile)' – mxmissile
Ну, я только сохраняю строку (адрес) фотографии в моей базе данных и добавляю фотографию (.jpg или что-то еще) в папку всякий раз, когда делаю операции с базой данных , Поэтому я не могу использовать это соглашение, так как я только сохраняю строку в своей базе данных. –
Возможно использование '@ Html.Action' – Hackerman