2012-08-07 81 views
3

一个POST值是否有访问从视图POST值(不通过控制器传递)什么是@SomeValue访问从View

+0

想想你在这里问什么。如果没有控制器进行渲染,您将如何将这些信息提供给视图? – asawyer 2012-08-07 18:26:51

+0

在PHP5/Symfony中,这是可能的,而且非常有用。我不知道在ASP.NET MVC中是否可能! – Anas 2012-08-07 18:29:23

+0

至少您可以使用视图包集合将值填充到视图中。 – asawyer 2012-08-07 18:30:51

回答

1

我觉得形式收集可以通过访问:

HttpContext.Current.Request.Form 

...但是为什么呢?它击败了MVC的目的。

+0

感谢它的工作原理:'@ HttpContext.Current.Request.Form [“SomeValue”]' – Anas 2012-08-07 18:53:06

0

如果正确的语法方式

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

The value being posted is @SomeValue 

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

更换行:

@Html.TextBox("SomeValue") 

随着

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

将允许您访问值一旦视图已经被渲染使用jQuery像这样:

$("#somevalue").val() 

HTH

0

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

改变你的HTML有一个跨度,使我们以后可以改变它的内容

值被公布为

覆盖您提交的行为,并把它

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

</script> 

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