2016-11-14 106 views
0

我正在创建一个asp.net应用程序。如何在asp.net mvc中将数据传递给控制器​​动作?

我有一个图像显示在控制器动作的视图内。当我点击视图中的一个项目(比如一个图像)时,我想将一些数据(比如ID)传递给控制器​​操作。

我在视图以下代码:

@Url.Content("ActionName", "Controller"); 

我想发送数据到控制器控制器的ActionName动作。

而控制器动作如下所示:

public ActionResult ActionName(string someParam) 
{ 
    return View(); 
} 

我可以调用没有问题的控制器动作,但我不能传递数据。感谢帮助。

回答

1
<a href='@Url.Action("MyAction", "MyController", new {id = "ID"})'> 
    <img src='@Url.Content("~/Content/Images/MyLinkImage.png")' /> 
</a> 
+0

谢谢你的工作。 –

+0

我做过了,我只是在接受SO上的答案而等待冷静的时间段 –

-1

可以使Ajax调用

为例进行

$('#btnSave').click(function (e) { 
    e.preventDefault(); // <------------------ stop default behaviour of button 
    var element = this;  
    $.ajax({ 
     url: "/ControllerName/ActionName", 
     type: "POST", 
     data: JSON.stringify({ 'Options': someData}), 
     dataType: "json", 
     traditional: true, 
     contentType: "application/json; charset=utf-8", 
     success: function (data) { 
      if (data.status == "Success") { 
       alert("Done"); 
       $(element).closest("form").submit(); //<------------ submit form 
      } else { 
       alert("Error occurs on the Database level!"); 
      } 
     }, 
     error: function() { 
      alert("An error has occured!!!"); 
     } 
    }); 
}); 
+0

谢谢@Emil,这可以在不使用ajax调用的情况下完成吗?我正在查看页面上显示的不同图像,当单击任何图像时,与图像相关的全部内容都会显示在单独的页面上。 –

+0

你可以通过参数@ Url.Action(“ActionName”,“ControllerName”,new {someParam =“someParam”})将点击指向URL的url。但是,这将重新加载整个页面 – Emil

+0

谢谢@Emil的答案。然而,shajeer提供的答案似乎工作正常,并不复杂。 –

1

可以在URL操作添加图片或图像创建的onclick功能,使Ajax请求

<a href="@Url.Action("ActionName", "Controller", new {someParam = "value"})"> 
     <img /> 
</a> 
相关问题