View Full Version : حرفه ای: پیاده سازی ثبت نامحدود
helpsos
دوشنبه 26 خرداد 1393, 07:51 صبح
سلام به همه
خواستم ببینم که کسی تا حالا دکمه + را که با کلیک بر روی آن مثلا یک تکست باکس جدید ایجاد میشه و ذوباره می توان اطلاعات جدید برای آن وارد کرد رو با MVC پیاده سازی کرده؟
میشه بگید که چطوری باید این کار رو کرد؟
یه چیزی شبیه به قسمت ضمیمه فایل در همین سایت
helpsos
چهارشنبه 28 خرداد 1393, 11:13 صبح
سلام به همه
خیلی ممنون از این همه پاسخ
روشی که به ذهن ناقص من رسید این بود:
از یه آرایه استفاده کنیم ولی نمیدانم که چطوری باید باهاش کار کنم و اطلاعات را داخلش بریزم و در آخر به کنترلر بفرستم؟
کسی راهی نداره؟
mo.esmp
جمعه 30 خرداد 1393, 19:32 عصر
یک مثال خیلی ساده.
فرض کن اون دکمه + یک تکست باکس رو داخل فرم اضافه مکنه.
<input type="text" name="Names[0]" id="name_0"/>
<input type="text" name="Names[1]" id="name_1"/>
<input type="text" name="Names[2]" id="name_2"/>
<input type="text" name="Names[3]" id="name_3"/>
نام تکست باکس باید از اینکس 0 شروع بشه و مثلا اگه بخوای تکست باکس پنجم رو اضافه کنی باید نامش Names[4] باشه.
وقتی فرم رو submit میکنی:
[HttpPost]
public ActionResult Contact(string[] Names)
{
return View();
}
hakim22
یک شنبه 01 تیر 1393, 20:48 عصر
برای اینجور کارها باید از jQuery کمک بگیرید. برای ارسال اطلاعات به سرور همانطور که دوستمون اشاره کردند باید تگ name را باید نام و اندیس های مختلف پر کنید تا ModelBinder در سمت سرور آن را تبدیل به آرایه کند. البته می توانید با jQuery همه اطلاعات تکست باکسها را درون یک رشته با جدا کننده ی کاما قرار دهید و همه را یکجا به سرور ارسال کنید.
helpsos
دوشنبه 02 تیر 1393, 09:51 صبح
میشه بیشتر راهنمایی کنید؟
چطوری باید در صفحه به تعداد دلخواه از یک شی درست کنم؟
اگه کد یا لینک بدین ممنون می شم؟
Alirs1
شنبه 07 تیر 1393, 14:45 عصر
سلام به ترتیب اینکارارو بکن مشکلت حل میشه
توی ویوت کد جاوا اسکریپت زیرو بزار+کدهای
html
اون فایل آپلودم داخل خط پایین بنویس تا محتویات فایلتو ارسال کنه واسه اکشنت
@using (Html.BeginForm("actionname", "Controlername", FormMethod.Post, new { enctype = "multipart/form-data" }))
@model app.ViewModel.vmFile
<script type="text/javascript">
var counter = 0;
function AddFileUpload() {
var div = document.createElement('DIV');
div.innerHTML = '<input id="file' + counter + '" name = "file' + counter +
'" type="file" accept="image/*" />' +
'<button id="Button' + counter + '" type="button" ' +
'style="" value="حذف" onclick = "RemoveFileUpload(this)" > <img src="/Content/themes/base/images/deleteimage.jpg" /></button>';
document.getElementById("FileUploadContainer").appendChild(div);
counter++;
}
function RemoveFileUpload(div) {
document.getElementById("FileUploadContainer").removeChild(div.parentNode);
}
</script>
<div id="FileUploadContainer">
@* <input type="file" name="FileUpload1" /><br />*@
</div>
<input type="submit" value="ثبت فرم" class="btn btn-primary btn-large" />
public ActionResult actionname(vmfile vmfile)
{foreach (string upload in Request.Files)
{
if (!HasFile(Request.Files[upload])) continue;
var httpPostedFileBase = Request.Files[upload];
if (httpPostedFileBase != null)
{
string mimeType = httpPostedFileBase.ContentType;
int contentLength = httpPostedFileBase.ContentLength/1048576; //5.85 mb =5
//if (contentLength < 10)
//{
if (mimeType == "image/jpeg" || mimeType == "image/gif" || mimeType == "image/jpg" ||
mimeType == "image/tif" || mimeType == "image/tiff" || mimeType == "image/bmp" ||
mimeType == "image/png" || mimeType == "image/x-png" ||
mimeType == "image/pjpeg" || mimeType == "image/pgif" || mimeType == "image/pjpg" ||
mimeType == "image/ptif" || mimeType == "image/ptiff" || mimeType == "image/pbmp" ||
mimeType == "image/ppng"
)
{
Stream fileStream = httpPostedFileBase.InputStream;
string fileName = Path.GetFileName(httpPostedFileBase.FileName);
int fileLength = httpPostedFileBase.ContentLength;
byte[] fileData = new byte[fileLength];
fileStream.Read(fileData, 0, fileLength);
var userData = new SFiles {
FileSource = fileData,
};
db.SFiles.InsertOnSubmit(userData);
db.SubmitChanges();
}
//}
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.