0

いくつかのフィールドを持つビューがあります。このビューでファイルをアップロードしたかったのです。フォーム送信メソッドを使用してアップロードすると、ビューのテキストボックスに入力されたデータが失われます.jquery ajax呼び出しからアップロードして、フィールドも一度に更新できるようにするか、投稿後にコントロールデータを維持するにはどうすればよいですか.

モデル

public class SView : ViewBase
{
    public string Customer { get; set; }
    public string ProjectNumb { get; set; }
    public string Description { get; set; }
    ....

コントローラ

    public ActionResult Index()
    {
        return View(ViewBase.Current.Model as SView);
    }

    public ActionResult Upload()
    {
        foreach (string inputTagName in Request.Files)
        {
            HttpPostedFileBase file = Request.Files[inputTagName];
            if (file.ContentLength > 0)
            {
                string filePath = HttpContext.Server.MapPath("~/Images/") + Path.GetFileName(file.FileName);

                file.SaveAs(filePath);
            }
        }

        return RedirectToAction("Index");
    }

意見

<tr class="evendiv">
                    <td>
                        <label class="labelfont">Customer</label>
                    </td>
                    <td>
                        <input id="tbxCust" type="text" value="@Model.Quotation.Customer" />
                    </td>
                </tr>
                <tr class="odddiv">
                    <td>
                        <label class="labelfont">Description</label>
                    </td>
                    <td>
                        <textarea id="tbxDesc" cols="20" rows="5" >@Model.Quotation.Description</textarea>
                    </td>
                </tr>
                <tr class="odddiv">
                    <td>
                        <label class="labelfont">Attach File(s)</label>
                    </td>
                    <td>
                        @using (Html.BeginForm("Upload", "Landing", FormMethod.Post, new { enctype = "multipart/form-data" }))
                        {
                            <input id="attchfile1" type="file" />
                            <input id="Button1" type="submit" value="Upload" />
                        }
                    </td>
                </tr>   

<input id="btnReqHrs" type="button" value="Request Hours" onclick="javascript:requesthours()" />

<script type="text/javascript">
function requesthours() {
    $.ajax({
        type: 'POST',
        url: Requesthours,
        data: values,
        dataType: "json",
        error: function (xhr, ajaxOptions, thrownError) {
            //ErrorMsg(thrownError);
            $("#progressdiv").hide();
        },
        success: function () {
            //$('#innerdiv').html(res);
            $("#progressdiv").hide();
        }
    });
}
4

2 に答える 2