lostyazilim

Asp.net Mvc yardım

6 Mesajlar 1.405 Okunma
lstbozum
wmaraci reklam

Fatal35 Fatal35 WM Aracı Kullanıcı
  • Üyelik 12.11.2016
  • Yaş/Cinsiyet 36 / E
  • Meslek yazılımcı
  • Konum İzmir
  • Ad Soyad A** G**
  • Mesajlar 3
  • Beğeniler 0 / 0
  • Ticaret 0, (%0)
HttpPostedFileBase null olarak geliyor bir türlü çözüm bulamadım

bu controller

public JsonResult Ekle(Haber haber,int KategoriID, HttpPostedFileBase VitrinResmi , IEnumerable DetayResim)
{
try
{
var SessionControl = HttpContext.Session["KullaniciEmail"];

if (ModelState.IsValid)
{
Kullanici kullanici = _kullaniciRepository.GetById(Convert.ToInt32(SessionControl));
haber.KullaniciID = kullanici.ID;
haber.KategoriID = KategoriID;
if (VitrinResmi != null)
{
string DosyaAdi = Guid.NewGuid().ToString().Replace("-", "");
string Uzanti = System.IO.Path.GetExtension(Request.Files[0].FileName);
string TamYol = "/External/Haber/" + DosyaAdi + Uzanti;
Request.Files[0].SaveAs(Server.MapPath(TamYol));
haber.Resim = TamYol;
}



_haberRepository.Insert(haber);
_haberRepository.Save();





string CokluResim = System.IO.Path.GetExtension(Request.Files[1].FileName);
if (CokluResim != "")
{
foreach (var file in DetayResim)
{
if (file.ContentLength > 0)
{
string DosyaAdi = Guid.NewGuid().ToString().Replace("-", "");
string Uzanti = System.IO.Path.GetExtension(Request.Files[1].FileName);
string TamYol = "/External/Haber/" + DosyaAdi + Uzanti;
file.SaveAs(Server.MapPath(TamYol));

var resim = new Resim
{
ResimUrl = TamYol


};

resim.HaberID = haber.ID;
_resimRepository.Insert(resim);
_resimRepository.Save();
}
}
}



}

return Json(new ResultJson { Success = true, Message = "Haber Ekleme işlemi Başarılı" });

}
catch (Exception ex )
{

return Json(new ResultJson { Success = false, Message = "Haber Ekleme işlemi Başarılı Olamadı" });
}




Bu view kısmı



@model HaberSistemi.Data.Model.Haber
@{
ViewBag.Title = "Haber Ekle";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<script></script>



@using (Html.BeginForm("Ekle", "Haber", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
@Html.AntiForgeryToken()
@Html.ValidationSummary()



@ViewBag.Title







@Html.DropDownListFor(model => model.KategoriID, new SelectList(ViewBag.Kategori, "ID", "KategoriAdi"), ("Seçiniz"), new { @class = "form-control", id = "KategoriID" })




@Html.TextBoxFor(x => x.Baslik, new { @class = "form-control", id = "Baslik", placeholder = "Haber Başlık" })



@*@Html.TextAreaFor(x => x.KisaAciklama , new { @class = "form-control", id = "KisaAciklama", placeholder = "Kısa Açıklama" })*@
@Html.TextArea("KisaAciklama")
<script>
var editor = CKEDITOR.instances['KisaAciklama'];
if (editor) { editor.destroy(true); }
CKEDITOR.replace('KisaAciklama', {
enterMode: CKEDITOR.ENTER_BR,
});
</script>







@*@Html.TextAreaFor(x => x.Aciklama, new { @class = "form-control", id = "Aciklama", placeholder = "Açıklama" })*@
@Html.TextArea("Aciklama")
<script>
var editor = CKEDITOR.instances['Aciklama'];
if (editor) { editor.destroy(true); }
CKEDITOR.replace('Aciklama', {
enterMode: CKEDITOR.ENTER_BR,
});
</script>


















Kaydet







}






buda js


function HaberEkle() {
Haber = new Object();
Haber.KategoriID = $("#KategoriID").val();
Haber.Baslik = $("#Baslik").val();
Haber.Aktifmi = $("#haberAktif").is(":checked");
Haber.KisaAciklama = $("#KisaAciklama").val();
Haber.Aciklama = $("#Aciklama").val();
Haber.VitrinResmi = $("#VitrinResmi").val();
Haber.DetayResim = $("#DetayResim").val();

$.ajax({
url: "/Haber/Ekle",
data: Haber,
type: "POST",
dataType: 'json',
success: function (response) {
if (response.Success) {
bootbox.alert(response.Message, function () {
location.reload();
});
}
else {
bootbox.alert(response.Message, function () {

});
}
}
})
}


}`

 

 

wmaraci
reklam

WmOptimize WmOptimize Üyeliği Durdurulmuş Banlı Kullanıcı
  • Üyelik 01.11.2015
  • Yaş/Cinsiyet 37 / E
  • Meslek WebProgramlama
  • Konum İstanbul Anadolu
  • Ad Soyad H** F**
  • Mesajlar 410
  • Beğeniler 151 / 174
  • Ticaret 3, (%100)
Hocam Mvc'yi ben kullanmıyorum ama sanırım Tam yol'da bir sorun olabilir "/"dan önce "~" işareti koyarak deneyebilir misiniz ? Boş olduğum zaman tekrar bakarım cevabı beni etiketleyerek atarsanız.
 

 

Fatal35 Fatal35 WM Aracı Kullanıcı
  • Üyelik 12.11.2016
  • Yaş/Cinsiyet 36 / E
  • Meslek yazılımcı
  • Konum İzmir
  • Ad Soyad A** G**
  • Mesajlar 3
  • Beğeniler 0 / 0
  • Ticaret 0, (%0)
olmadı hocam
 

 

SizofrenikDev SizofrenikDev WM Aracı Kullanıcı
  • Üyelik 05.10.2016
  • Yaş/Cinsiyet 38 / E
  • Meslek Yazılım Uzmanı
  • Konum İstanbul Avrupa
  • Ad Soyad H** B**
  • Mesajlar 187
  • Beğeniler 8 / 49
  • Ticaret 2, (%100)
HaberSistemi.Data.Model.Haber classını paylaşırmısın. Problem orda.
 

 

wmaraci
wmaraci

Fatal35 Fatal35 WM Aracı Kullanıcı
  • Üyelik 12.11.2016
  • Yaş/Cinsiyet 36 / E
  • Meslek yazılımcı
  • Konum İzmir
  • Ad Soyad A** G**
  • Mesajlar 3
  • Beğeniler 0 / 0
  • Ticaret 0, (%0)
buyrun hocam



using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace HaberSistemi.Data.Model
{
[Table("Haber")]
public class Haber : BaseEntity
{

[Display(Name = "Haber Başlık")]
[MaxLength(255, ErrorMessage = "Çok fazla girdiniz !")]
[Required]
public string Baslik { get; set; }

[Display(Name = "Kısa Açıklama")]
public string KisaAciklama { get; set; }

[Display(Name = "Açıklama")]
public string Aciklama { get; set; }

public int Okunma { get; set; }

public int KullaniciID { get; set; }

public virtual Kullanici Kullanici { get; set; }

[Display(Name = "Resim")]
[MaxLength(255, ErrorMessage = "Çok fazla girdiniz !")]
public string Resim { get; set; }

public virtual ICollection Resims { get; set; }


public int KategoriID { get; set; }
public virtual Kategori Kategori { get; set; }
}
}











using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace HaberSistemi.Data.Model
{
public class BaseEntity
{
public int ID { get; set; }


private DateTime Tarih = DateTime.Now;


private bool Aktif = true;

public DateTime EklenmeTarihi
{
get
{
return Tarih;
}
set
{
Tarih = value;
}
}

public bool AktifMi
{
get
{
return Aktif;
}
set
{
Aktif = value;
}

}


}
}




Ek Olarak:

ŞizofrenikDev adlı üyeden alıntı

HaberSistemi.Data.Model.Haber classını paylaşırmısın. Problem orda.


Ek Olarak:

WmOptimize adlı üyeden alıntı

Hocam Mvc'yi ben kullanmıyorum ama sanırım Tam yol'da bir sorun olabilir "/"dan önce "~" işareti koyarak deneyebilir misiniz ? Boş olduğum zaman tekrar bakarım cevabı beni etiketleyerek atarsanız.
 

 

SizofrenikDev SizofrenikDev WM Aracı Kullanıcı
  • Üyelik 05.10.2016
  • Yaş/Cinsiyet 38 / E
  • Meslek Yazılım Uzmanı
  • Konum İstanbul Avrupa
  • Ad Soyad H** B**
  • Mesajlar 187
  • Beğeniler 8 / 49
  • Ticaret 2, (%100)
View tarafında kullandığın Html.BeginForm da belirttiğin multipart/form-data doğru, fakat formu ajax ile post ettiğin için fileUpload içerisindeki data sıfırlanıyor, base64 formatında post edebilirsin ama buda çok gereksiz olur. Uploadify yada Dropzone kullanmanı öneririm. Yok ben illede böyle yapıcam diyorsan;
1- Html.BeginForm yerine Ajax.BeginForm kullanacaksın. bunun için ajax script referanslarını eklemelisin
2-Post ettiğin model içerisinde HttpPostedFileBase tipinde property tanımlamalısın.
3-ActionResult tarafında değeri yakalayıp Image olarak kaydetmen gerekir.

aşağıdaki cevabı incele yardımcı olur, fakat benim önerim Uploadify yada Dropzone kullanarak dosyayı upload edip oluşan dosya path değerini modele set etmen ;)
http://stackoverflow.com/questions/19042116/ajax-beginform-in-mvc-to-upload-files
 

 

wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al