提交表单时停止清除文本框

时间:2014-03-11 22:53:32

标签: html asp.net asp.net-mvc forms razor

我正在使用MVC 4创建ASP.NET Web应用程序。在视图中,有一个表单,其中包含用于浏览文件的文本框,下拉列表框和提交按钮。提交表单后,输出将显示在表单外部的文本区域中。 我的问题是,提交表单时,只会清除文本框(用于浏览文件),但列表框将保留所选值。输出将显示在文本区域中。

以下是代码:

<h2>Transform</h2>

@using (Html.BeginForm("TransformedMessage", "Transformer", FormMethod.Post))
{    
    @Html.TextBoxFor(m => m.InputMessagePath, new { @type="file"}) <br /><br />
    @Html.DropDownListFor(m => m.SelectedTransform, new SelectList(Model.TransformClassTypes), new { @id="lstTransforms", @name="lstTransforms"}) <br /><br />
    <input type="submit" value="Transform"/> <br /><br /> 
}

@Html.TextAreaFor(m => m.OutputMessage) <br /><br />

当清除文本框(浏览)时将输出写入文本区域时,会发生渲染事件。如果有人能帮助我避免这个问题,我真的很感激。我不希望在提交后清除任何表单组件。

4 个答案:

答案 0 :(得分:0)

在你的控制器中你是否设置了model.SelectedTransform返回默认值?如果没有,你应该(如果我理解你的问题),否则下拉列表将保留用户选择,

正如@rowan所提到的,文件输入字段只会被清除,因为浏览器不支持预设值(安全问题)

答案 1 :(得分:0)

在表单提交后,无法使用值重新填充文件输入控件。用户必须再次选择文件。

答案 2 :(得分:0)

它不是&#34;文本框和浏览按钮&#34;或两个单独的控件。它是一个具有类型属性&#39; file&#39;的SINGLE控件。

<input type="file" />

不同的浏览器可能会以不同方式呈现它有些浏览器按照你的说法显示,有些浏览器会显示一个选择文件&#39;按钮等。由于这些标准,您无法在发布页面后在文件输入控件中维护文件选择信息。与密码字段非常相似,无法在回发中维护值。这是HTML标准。

答案 3 :(得分:0)

如果您不想清除“HTML表单”的文本内容,请使用Jquery AJAX在服务器端执行操作类似:

  $.ajax({
            type:'POST',
            url:("Home/Save"),
            data:{data:'FormData'},
            Success:function(response){
               //Do the Further Process
            }
        })

在服务器端,只需将服务器操作作为:

public JsonResult Test(FormDatas Data )
    {
        //You Operations
        return Json(Result);
    }