从View访问POST值

时间:2012-08-07 18:25:28

标签: asp.net-mvc asp.net-mvc-3 razor

有没有办法从View访问POST值(不经过控制器)

@using (Html.BeginForm()) {
    @Html.ValidationSummary(true)
    <fieldset>
        @Html.TextBox("SomeValue")    
        <input type="submit" value="Submit" />
    </fieldset>
}

The value being posted is @SomeValue

@SomeValue

的正确语法是什么

3 个答案:

答案 0 :(得分:1)

我认为表格集可以通过以下方式访问:

HttpContext.Current.Request.Form

......但为什么呢?它违背了MVC的目的。

答案 1 :(得分:0)

如果你需要客户端的东西,你应该使用JavaScript而不是在视图中放置逻辑。意见应该是愚蠢的。

更换一行:

@Html.TextBox("SomeValue")

使用

@Html.TextBox("SomeValue", new {Id = "somevalue"})

一旦使用JQuery呈现视图,就可以访问该值,如下所示:

$("#somevalue").val()

HTH

答案 2 :(得分:0)

如果您想知道TextBox的值是什么,在它进入控制器之前,您可以通过javascript获取它。

将您的HTML更改为具有Span,以便我们稍后可以更改其内容

发布的价值是

覆盖您的提交行为并获取

<script type="Text/javascript">
  $(function(){
        $("form").submit(function(e){
           e.preventDefault();
           $("#spanVal").html($("#YourTextBoxID").val());
        });
  });

</script>

这不会真正将表单提交给控制器的HTTPPOST操作方法,但会在范围内的文本框中显示该值。