مشکل در بارگزاری فایل در فرم

ساخت وبلاگ
درود
من تو این فرم با input-file دوتا مشکل دارم/
1-وقتی فایلی رو در فرم آپلود مبکنم و روی سابمیت کلیک میکنم نام فایل مورد نظر بدرستی در جدول ذخیره میشه اما خود فایل در دایکتوری تعیین شده بارگزاری نمیشه/برک پوینت که گذاشتم فهمیدم هنگام پست شدن فرم پارامتر " HttpPostedFileBase file" در اکشن نال هستش!هرکاری هم کردم درست نشد.با توجه به کدهایی که زدم لطفا بگید ایراد کار کجاست؟(اینم بگم با اینکه تو ویو صراحتا برای input-file فرم مقدار name="file" رو تعریف کردم اما وقتی تو مرورگر inspect element میگیرم نامش همون FileUpload نوشته میشه.)
2-برنامه رو طوری نوشتم که تنها وقتی کاربر گزینه "درخواست درج آگهی" در DropDownList فرم رو انتخاب کرد input-file فرم فعال باشه و درغیر اینصورت غیرفعال بمونه.خب تااینجا درست کار میکنه مشکلم با ولیدیشن مربوط به این ورودیه که حتی وقتی هم غیرفعاله بازم اجازه پست شدن به رم رو نمیده!چیکار باید بکنم تا وقتی input-file غیر فعاله ولیدیشن اونم دیگه کار نکنه؟
سپاس
کد ویوی فرم
کد HTML:

<div class="col-md-12 order_tell">
            @using (Html.BeginForm("TellUs", "Home",
            FormMethod.Post ,new { @class = "form-horizontal box_new_cmnt", enctype = "multipart/form-data" }))
            {
                @Html.AntiForgeryToken()
                @Html.ValidationSummary(true, "", new { @class = "text-danger" })
                <div class="row r_cmnt">
                    <div class="col-md-12 lbl_frm">
                        @Html.LabelFor(m => m.Subject)
                    </div>
                </div>
                <div class="row r_cmnt">
                    <div class="col-md-6 box_validation">
                        @Html.ValidationMessageFor(model => model.Subject, "", new { @class = "text-danger" })
                    </div>
                    <div class="col-md-6 inpt_frm">
                        @Html.DropDownListFor(model => model.Subject,
                      new List<SelectListItem>
                      {
                          new SelectListItem() {Text="سفارش پروژه",Value="prj"},
                          new SelectListItem() {Text="درخواست درج آگهی",Value="agh"},
                          new SelectListItem() {Text="دیگر ...",Value="otr"}
                      }
                      , "انتخاب", new { @class = "form-control", id = "lst_tell", onchange = "visibleFile()" })
                    </div>
                </div>
                <div class="row r_cmnt">
                    <div class="col-md-12 lbl_frm">
                        @Html.LabelFor(m => m.Email)
                    </div>
                </div>
                <div class="row r_cmnt">
                    <div class="col col-md-6 box_validation">
                        @Html.ValidationMessageFor(model => model.Email, "", new { @class = "text-danger"})
                    </div>
                    <div class="col-md-6 inpt_frm">
                        @Html.TextBoxFor(model => model.Email, "", new { id = "eml" })
                    </div>
                </div>
                <div id="div_file">
                    <div class="row r_cmnt">
                        <div class="col-md-12 lbl_frm">
                            @Html.LabelFor(m => m.FileUploud)
                        </div>
                    </div>
                    <div class="row r_cmnt">
                        <div class="col col-md-6 box_validation">
                            @Html.ValidationMessageFor(model => model.FileUploud, "", new { @class = "text-danger" })
                        </div>
                        <div class="col-md-6 inpt_frm">
                            @Html.TextBoxFor(model => model.FileUploud, null, new { type = "file",@name="file", id = "up_tell", disabled = "disabled" })
                        </div>
                    </div>
                </div>
                <div class="row r_cmnt">
                    <div class="col-md-12 lbl_frm">
                        @Html.LabelFor(m => m.Body)
                    </div>
                </div>
                <div class="row r_cmnt">
                    <div class="col col-md-4 box_validation">
                        @Html.ValidationMessageFor(model => model.Body, "", new { @class = "text-danger" })
                    </div>
                    <div class="col-md-8 inpt_frm">
                        @Html.TextAreaFor(model => model.Body, new { rows = "10" })
                    </div>
                </div>

                <div class="row r_cmnt">
                    <div class="col-md-12 btn_frm">
                        <button type="submit">درج پیام</button>
                    </div>
                </div>
            }
        </div>
//javascript
<script src="~/Scripts/jquery-1.10.2.min.js"></script>
<script src="~/Scripts/jquery.validate.min.js"></script>
<script src="~/Scripts/jquery.validate.unobtrusive.min.js"></script>
<script type="text/javascript">
    $(function () {
        $("#lst_tell").change(function () {
            if ($(this).val() == "agh") {
                $("#up_tell").removeAttr('disabled');
                $("#up_tell").removeAttr('data-valmsg-for');
            } else {
                $("#up_tell").attr('disabled', "disabled");
                $("#val_up").attr('data-valmsg-for', "FileUploud");
            }
        });
    });
</script>

کد اکشن

[HttpGet]
public ActionResult TellUs()
{
return View();
}
[HttpPost]
public ActionResult TellUs(HttpPostedFileBase file,
[Bind(Include = "ID,Subject,Email,Body,FileUploud,Date,Time,State" )] Message message)
{
if (ModelState.IsValid)
{
if (file != null && file.ContentLength > 0)
{
message.FileUploud = file.FileName;
string strPath = "~/Content/Images/ads"+ file.FileName;
string strFinal = Server.MapPath(strPath);
file.SaveAs(strFinal);
db.Messages.Add(message);
db.SaveChanges();
}
else
{
db.Messages.Add(message);
db.SaveChanges();
}
}
return View();
}
تمپوs...
ما را در سایت تمپوs دنبال می کنید

برچسب : نویسنده : خنج tempos بازدید : 213 تاريخ : جمعه 20 مرداد 1396 ساعت: 4:06