mvc需要在没有<form> </form>的情况下从视图中调用控制器方法

时间:2013-04-18 12:57:36

标签: asp.net-mvc forms methods

是否还有其他可能在c#中调用控制器方法而不是使用带有输入元素的表单?实际上我只想通过按下按钮或链接来执行方法。

到目前为止我正在使用:

@using (Html.BeginForm("RefreshQuestion", "Admin"))
{ 
    <input type="submit" value="refresh" class="questionInput" />      
}
非常感谢提前 _tek

2 个答案:

答案 0 :(得分:1)

这是你应该做的事情来调用控制器方法。如果您不想使用该代码,可以使用Action Link。

 @Html.ActionLink("Refresh", "RefreshQuestion", "Admin")

您是否也需要发布一些内容,或者您​​只是打电话给控制器?

答案 1 :(得分:1)

您可以使用一些小的javascript来进行ajax调用。您可以将数据从UI传递到操作方法。

以下示例将在用户点击按钮时将Name输入元素的值发布到操作方法。

<input type="text" id="Name" />
<input type="submit" id="btnSave" value="refresh" class="questionInput" />      

你的javascript是

$(function(){

  $("#btnSave").click(function(e){
     e.preventDefault();

     $.post("@Url.Action("RefreshQuestion","Admin")",
                                    { name : $("#Name").val() } ,function(data){
         // do something with the response
     });
  }); 

});

您的操作方法应该有一个名为name的参数或一个视图模型对象,其中包含name属性(模型绑定将休息)。

[HttpPost]
public ActionResult Add(string name)
{
  // save and return something
}

您也可以根据需要使用serialize方法发送填写表单中所有项目的数据。