2011-02-10 41 views
0

在我的一个观点中,我得到了一个INPUT字段,我放置了光标并通过阅读器扫描了MagCard。这会导致在该框中出现一系列字符,以ENTER(char 13)结尾,我通过jQuery捕获并将表单发送到另一个页面进行处理。MVC3 Razor>输入字段

基本上我希望输入框中的字符串在控制器中可用,所以我可以使用c#函数处理它,而不是通过javascript完成所有客户端。

从客户端代码获取托管代码的值似乎没有找到迄今为止发现的所有指南。

任何帮助表示赞赏,我之所以对POST而不是GET是因为它充满了特殊的字符,?以及需要保留的空格。

任何方法都将被评估。

@Darin Dimitrov 对不起,我不清楚。

虽然你的建议有效,并引导我一点我所需要的。 (这将很方便知道,不管是什么。)

因为我不是真的想要一个返回值,所以我试图发布到Home/ProcessScan作为我的表单的动作。然后在我的控制器做到这一点:

[AcceptVerbs(HttpVerbs.Post)] 
    public ActionResult ProcessScan(string scanSeek) 
    { 
     string myScan = scanSeek; 
     string name = myScan.Substring(1, 13); 
     return Redirect("../reservation?name=" + name); 
    } 

而这现在适用于我。只好:
*使用的[AcceptVerbs(HttpVerbs.Post)声明
*更改我的类型的ActionResult,而不是无效的,因为重定向需要在它前面

注回:我重定向我用“ ../“因为这个观点不在Home之下。

回答

1

你的问题很混乱,因为你没有提供太多的细节。很显然,像onfocusonclick这样的事件只能通过客户端JavaScript来处理。你提到jQuery和POST,所以我想你正在谈论AJAX。所以,你可以发送一个值是这样的:

$.post('@Url.Action("Foo")', { value: $('#mytextboxid').val() }, function(result) { 
    // the value was successfully posted to the server 
}); 

,并在服务器上,你将有以下控制措施:

public ActionResult Foo(string value) 
{ 
    // TODO: do something with the value and return a corresponding result 
} 
1

假设输入ID为magCardCode,这样你可以有一个Action这需要一个参数:string magCardCode

在这种情况下,你可以使用jQuery阿贾克斯这样简单地张贴您的形式:

<script> 
    $(document).ready(function() { 
     $("#submitForm").click(function() { 
      $.ajax({ 
       url: '/MagCard/SubmitCode/, 
       dataType: 'html', 
       type: 'POST', 
       success: function (data) { 
        // Use data 
      }); 
     }); 

    }); 
</script> 

而现在的价值是你的行动中accessable!