在MVC 4中,我的textarea没有从默认值重置

时间:2017-05-25 02:15:23

标签: javascript c# model-view-controller

我用浏览按钮和上传按钮创建了一个MVC项目。当用户单击“浏览”并选择文件并单击“上载”时,文件内容必须显示在Textarea中。默认情况下,当我加载页面时,我在textarea中显示默认文本。一旦用户上传文件,我就试图在该textarea中显示内容。

问题是当我尝试重置内容时,textarea没有重置。任何帮助都非常感谢。

查看: -

@model DigitalUnderwritingFacade.Models.DigitalUnderwritingModel
<h2>DigitalUnderwriting</h2>

<div>
    @using (Html.BeginForm())
    {       
        <table style="vertical-align:middle">
            <tr>                            
                <td>Upload a json file : <input type="file" id="btnbrowse" name="browse" value="Browse"></td>

            </tr>
            <tr>
                <td><input type="button" id="btnfileUpload" name="btnfileUpload" value="Upload" /></td>
                <td><div id="validateSelectedFile" class="warrningMessage">Please browse a valid json file</div></td>
            </tr>
            <tr>                
                <td>@Html.TextAreaFor(model => model.JsonText, new { @class = "form-control", cols = "120", rows = "45", @id = "textarea" })</td>

            </tr>
            <tr>
                <td><input type="submit" id="Savebtn" value="Save"></td>
            </tr>
        </table>
    }   
</div>

<script src="~/Scripts/jquery-1.9.1.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript">   
    $("#btnfileUpload").click(function () {       
        var formData = new FormData();
        var totalFiles = document.getElementById("btnbrowse").files.length;
        var browsedFile = document.getElementById("btnbrowse").files[0];
        var fileextension = browsedFile.name.split('.').pop();

        if (totalFiles == 0)
            $("#validateSelectedFile").show()
        if ((totalFiles != 0)) {             
            if (fileextension == 'json') {                
                formData.append("FileUpload", browsedFile);
                $.ajax({
                    type: "POST",
                    url: '/DigitalUnderwriting/Upload',
                    data: formData, 
                    contentType: false,
                    processData: false,
                    success: function (result) { }                    
                });
            }
            else {
                alert("Please select a valid json file.");
            }
        }
    });   
</script>


Controller:-

 DigitalUnderwritingModel model = new DigitalUnderwritingModel();
        private string InputJsonPath = System.Configuration.ConfigurationManager.AppSettings["DefaultJson"].ToString();
        private string ResponseJsonPath = System.Configuration.ConfigurationManager.AppSettings["JsonResponsesPath"].ToString();
        //
        // GET: /DigitalUnderwriting/

        public ActionResult Index()
        {
            StreamReader reader = new StreamReader(InputJsonPath);
            if (TempData["ResponseJson"] == null)
            {
                model.JsonText = reader.ReadToEnd();
            }
            else
            {
                model.JsonText = TempData["ResponseJson"].ToString();
                TempData["ResponseJson"] = null;
            }
            return View(model);
        }     


        [HttpPost]
        public ActionResult Upload()
        {
            ModelState.Remove("JsonText");
            var streamfile = new StreamReader(Request.Files[0].InputStream);
            var streamline = string.Empty;
            while((streamline = streamfile.ReadLine()) != null)
            {
                model.JsonText += streamline;
            }
            TempData["ResponseJson"] = model.JsonText;
            return RedirectToAction("Index");
        }

Model:-

 [DataType(DataType.MultilineText)]
 public string JsonText { get; set; }

1 个答案:

答案 0 :(得分:1)

试试这个,我的朋友。我认为你不需要为Textarea设置id。

$("#btnfileUpload").click(function () {       
    var formData = new FormData();
    var totalFiles = document.getElementById("btnbrowse").files.length;
    var browsedFile = document.getElementById("btnbrowse").files[0];
    var fileextension = browsedFile.name.split('.').pop();

    if (totalFiles == 0)
        $("#validateSelectedFile").show()
    else{            
        $('#JsonText').html(browsedFile.name); //set name file            
        if (fileextension == 'json') {                
            formData.append("FileUpload", browsedFile);
            $.ajax({
                type: "POST",
                url: '/DigitalUnderwriting/Upload',
                data: formData, 
                contentType: false,
                processData: false,
                success: function (result) { }                    
            });
        }
        else {
            alert("Please select a valid json file.");
        }
    }
}); 

        [HttpPost]
        public ActionResult Upload()
        {
            TempData["ResponseJson"] = model.JsonText;
            ModelState.Remove("JsonText");
            var streamfile = new StreamReader(Request.Files[0].InputStream);
            var streamline = string.Empty;
            while((streamline = streamfile.ReadLine()) != null)
            {
                model.JsonText += streamline;
            }

            return RedirectToAction("Index");
        }