2017-02-17 91 views
-1

大家好,我不知道这是可能与否,这就是为什么我需要建议,以实现这一目标的人。事情是我想发布的AJAX-beginform而不是模型对象的javacript对象控制器。我的代码像波纹管,但无法找到一种方式发布数据,我知道jQuery ajax是一个选项,但我不想在这种情况下使用jQuery ajax发布数据。传递javascript对象ajax beginform mvc

HTML

@{ 
    ViewBag.Title = "Index"; 
    Layout = "~/Views/Shared/_Layout.cshtml"; 
} 
@section scripts{ 
    <script type="text/javascript"> 

     var getValues=function() 
     { 
      //alert(1) 
      var v = { 
       id: $("#txtid").val(), name: $("#txtName").val() 
      } 
      console.log(v) 
      return v; 
     } 

    </script> 
    } 

<h2>Index</h2> 
@using (Ajax.BeginForm("postvalue", new AjaxOptions { HttpMethod="POST", OnBegin = "getValues" })) 
{ 
    <input type="text" id="txtid" /> 
    <br /> 
    <input type="text" id="txtName" /> 
    <br /> 
    <button type="submit" value="Click" style="width:50px;height:50px">Click</button> 
} 

位指示

namespace AjaxBeginForm.Controllers 
{ 
    public class AjaxBeginFormController : Controller 
    { 
     // GET: AjaxBeginForm 
     public ActionResult Index() 
     { 
      return View(); 
     } 

     public void postvalue(searchValues objsearchValues) 
     { 

     } 
    } 

    public class searchValues 
    { 
     public Int64 id { get; set; } 
     public string name { get; set; } 
    } 
} 

我想POST数据到控制器,并赶上他们在objsearchValues

+0

你不想使用'$ .ajax()'?为什么不? (你认为'Ajax.BeginForm()'做了什么 - 它使用'$ .ajax()'发布数据,所以你已经在幕后使用它) –

+0

这就是为什么我不想再次使用它。我只是想附加一个值的对象。是否有可能? – matrixwebtech

+0

你是什么意思_我不想再用这个_?再次使用什么?为什么你不只是使用'$ .ajax()'? –

回答

0

将JS值放在窗体的隐藏字段中,当表单提交时,它会将值传递回控制器。

+0

没有选择直接发布对象,比如jQuery.ajax() – matrixwebtech