MVC C#Razor中的链接按钮等效物
我正在将一个web表单转换为MVC#razor项目。我想知道如何在Razor中获得相同的功能,它将创建一个链接并将表单插入同一页面。web表单代码是-MVC C#Razor中的链接按钮等效物,c#,asp.net-mvc,asp.net-mvc-4,razor,C#,Asp.net Mvc,Asp.net Mvc 4,Razor,我正在将一个web表单转换为MVC#razor项目。我想知道如何在Razor中获得相同的功能,它将创建一个链接并将表单插入同一页面。web表单代码是- <asp:LinkButton ID="lnkBtn_1" runat="server" Text='<%#Eval("Sales") %>' OnCommand="LinkButton1_Command" CommandArgument='<%#Eval("Sales") %>' ></asp:Link
<asp:LinkButton ID="lnkBtn_1" runat="server" Text='<%#Eval("Sales") %>' OnCommand="LinkButton1_Command" CommandArgument='<%#Eval("Sales") %>' ></asp:LinkButton>
提前感谢您可以编写锚定标签。但是单击锚标记通常不会提交表单,而是触发HTTP GET请求。因此,您需要编写一些java脚本来完成表单提交
<form action="Customer/Create">
<a href="#" id="linkToSubmit">Submit</a>
</form>
现在,您可以在客户
控制器中的创建
操作方法的HttpPost操作中执行代码(因为这是表单的操作
设置为)
另一种选择是将“提交”按钮保留在表单中,并对其进行样式设置,使其看起来像所解释的链接。试试这个
@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。在rezor中使用链接按钮有很多种方法,请尝试其中任何一种
链接按钮
@ActionLink(“文本”、“ActionResult”、“控制器”)
将表单提交到同一页面时,必须使用Ajax Begin表单或使用带有Ajax post方法的简单json对象。像这样试试
$("#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 !!!");
}
});
如果您是mvc新手,那么您需要从mvc教程中检查它的基本功能:请按照下面的线程将您的web应用程序代码转换为mvc @ActionLink(“buttonText”,new{controller=“ControlelerName”,action=“ActionName”, @sales=“您的参数”})
然后在您的控制器中生成一个操作结果我已经有了一个httppost操作-[httppost]公共操作结果ApReport(ApReport Ddl){…},只要表单字段名与ApReport类的属性名匹配,我将如何获取此httppostAs中提交的值,模型绑定将负责将发布的表单值映射到Ddl对象。我在模型类(公共字符串linkToSubmit{get;set;})和类内部(字符串lnkBtn;lnkBtn=Request.form[“linkToSubmit”];)中添加了这些值,但在单击链接后,它不会向控制器提交任何值,回到同一页面,您不需要将
linkToSubmit
添加到视图模型类中吗?是否要将表单字段值传递给操作方法?此外,您不需要读取诸如Request.Form
之类的值。MVC模型绑定会照顾到您。我强烈建议阅读一些关于模型绑定工作原理的书籍,然后进一步编写代码。开始。添加模型名时出现编译错误您必须在视图@model Classes.YourModel顶部添加对模型的引用
$("#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 !!!");
}
});