链接按钮等效于MVC C#Razor

时间:2016-03-31 14:39:36

标签: c# asp.net-mvc asp.net-mvc-4 razor

我正在将一个Web表单转换为MVC C#razor项目。我想知道如何在Razor中获得相同的功能,它将创建一个链接并将表单汇总到同一页面。网络表单代码是 -

<asp:LinkButton ID="lnkBtn_1" runat="server" Text='<%#Eval("Sales") %>' OnCommand="LinkButton1_Command" CommandArgument='<%#Eval("Sales") %>' ></asp:LinkButton>

提前致谢

4 个答案:

答案 0 :(得分:2)

试试这个

@Html.ActionLink("buttonText", "ControllerAction", "YourController ", 
         new { @sales = YourModel.Parameter}, new { @class =yourcssclass" })

您的控制器

public class YourController : Controller
{
public ActionResult Index()
 {
        var model = YourDataToDisplay;

        return View(model);
 }
public ActionResult ControllerAction(int sales)
{
    //.....
}
}

您可以使用ViewData定义ButtonText。

答案 1 :(得分:1)

您可以编写锚标记。但是,单击锚标记通常不会提交表单,但会触发HTTP GET请求。所以你需要编写一些java脚本来进行表单提交。

<form action="Customer/Create">
   <a href="#" id="linkToSubmit">Submit</a>
</form>

使用jQuery和一些不显眼的javascript代码绑定此锚标记上的click事件,

$(function(){
  $("#linkToSubmit").click(function(e){
    e.preventDefault(); // prevent the normal link click behaviour (GET)
    $(this).closest("form").submit();
  });
});

现在,您可以在Create控制器中的Customer操作方法的HttpPost操作中执行代码(,因为这是action设置为<的形式/ em>的)

另一种选择是将提交按钮保留在表单中并对其进行样式设置,使其看起来像in this answer所解释的链接。

答案 2 :(得分:1)

有许多方法可以在rezor中使用链接按钮,尝试其中任何一种 <button type="button" onclick="@("window.location.href='" +@Url.Action("ActionResult", "Controller") + "'")"> Link Button </button> <a href="@Url.Action("ActionResult", "Controller")"> Link Button </a> @Html.ActionLink("Text","ActionResult","Controller") 将表单提交到同一页面,您必须使用Ajax Begin Form或使用简单的json对象和ajax post方法。试试这个

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

var urlpath = '@Url.Action("ActionResult", "Controller")';
$.ajax({
    url: urlpath ,
    type: "POST",
    data: JSON.stringify({ 'Options': someData}),
    dataType: "json",

    contentType: "application/json; charset=utf-8",
    success: function (data) {
        if (data.status == "Success") {
            alert("Done");

        } else {
            alert("Error occurs on the Database level!");
        }
    },
    error: function () {
        alert("An error !!!");
    }
});

答案 3 :(得分:1)

如果您是mvc的新手,那么您需要从MVC教程中检查它的基本内容:请按照以下主题将您的Web应用程序代码转换为MVC

https://msdn.microsoft.com/en-us/library/system.web.mvc.html.linkextensions.actionlink(v=vs.118).aspx

@ Html.ActionLink(“buttonText”,new {controller =“ContreollerName”,action =“ActionName”,           @sales =“你的参数”})

然后在您的控制器中制作一个动作结果