IskanderRaimbayev IskanderRaimbayev - 1 year ago 96
jQuery Question

How to collect page's data with POST request?

Let's assume I have a simple page with some information and a form.

@using (Html.BeginForm("UpdateOrder", "OrderController", FormMethod.Post)) {
// some inputs here
<p id="user_info">Some text here</p>

All input's data will be sent like model or by FormCollection to the Controller.

However, I want also to send to the controller any text\image, generally any information from the page that located outside the form. Here text with id "user_info" as an example.

I wonder if it could be implemented without jQuery, only by using default Controller's functionality.

Answer Source

You can do it simply

1- if you want to upload some documents or images than your form should be like bellow code:

@using (Html.BeginForm("ApplyOnline", "Applieds", null, FormMethod.Post, new { enctype = "multipart/form-data" }))
  <input type="hidden" name="JobId" id="JobId" value="@ViewBag.JobId" />

  @Html.ValidationSummary(true, "", new { @class = "text-danger" })

   <div class="form-group">
      <label class="control-label col-md-3">First Name (اسم)</label>
      <div class="col-md-8">
      @Html.EditorFor(model => model.FirstName, new { htmlAttributes = new { @class = "form-control",@required="required" } })
      @Html.ValidationMessageFor(model => model.FirstName, "", new { @class = "text-danger" })
   <input type='file' name='pmd' id='pmd' />
<input type="submit" value="Apply" class="btn btn-primary"  />

than in countroller in post method

public ActionResult ApplyOnline([Bind(Include = "Id,JobId,FirstName")] Applied applied, HttpPostedFileBase pmd, int JobId)
  if (ModelState.IsValid)
            //---save the data---------//
            //---Get inserted Id----//
            int insertedId = applied.Id;
             //--------Upload PMD-------------------//
            if (pmd != null && pmd.ContentLength > 0)
                    var PMDFileName = "PMD-" + applied.JobId + "-" + TrimedUser + "-" + insertedId + "-" + pmd.FileName;
                    //var P11FileName = DateTime.Now.ToString();
                    string path = Path.Combine(Server.MapPath("~/App_Data/system"),
                    UploadFiles MyPMDUploads = new UploadFiles();
                    MyPMDUploads.JobId = applied.JobId;
                    MyPMDUploads.ApplyId = insertedId;
                    MyPMDUploads.FileName = Path.GetFileName(PMDFileName);
                    MyPMDUploads.FilePath = path;

                    ViewBag.Message = "PMD uploaded successfully";
                catch (Exception ex)
                    ViewBag.Message = "ERROR PMD:" + ex.Message.ToString();

                ViewBag.Message = "You have not specified a PMD file.";
   return view(Model);

this way you can upload files and data all is included hop this help you

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download