我正在尝试使用按钮连接到控制器中的方法。我可以通过这个链接连接:
@Html.ActionLink("Print", "Print", new { id = Model.SalesContractId})
但我不想要一个链接,我希望我的对话框上的按钮可以做到。我尝试过以下方法:
$('#btnDialogPrint').click(function () {
location.href = '<%= Url.Action("Print", "Print", new { id = Model.SalesContractId}) %>';
});
但它只是将我重定向到一个说错误请求的页面。
namespace Contract.Controllers
{
public class ContractController : Controller
{
CompassEntities db = new CompassEntities();
public ActionResult Print(int id)
{
return View(""); // This can be removed and Print code may be added
}
一旦我进入这个方法,我不会担心里面的代码。
我可以在这附加一个链接吗?
<input type="button" value="Print" id="btnDialogPrint" />
我的观看Edit.cshtml
@model Contract.Models.tbSalesContract
<!DOCTYPE html>
<html>
<head>
<title>Edit Contract</title>
</head>
<!-- Script section -->
<script src="@Url.Content("~/Scripts/Views/Contract.js")" type="text/javascript"></script>
<!-- Templates -->
<script id="tmplDebtorList" type="text/x-jquery-tmpl">
<div class="DebtorResults">
<span><div style="width:80px;float:left;">${CustomerAccNo}</div></span><span><a href="#" class="debtorLink" value="${DebtorId}">${CustomerName}</a></span>
</div>
</script>
<body>
@using (Html.BeginForm("Edit", "Contract", FormMethod.Post, new { id = "frmMain",name="frmMain" }))
{
答案 0 :(得分:9)
jQuery中的链接与ActionLink
链接不匹配。此外,使用Url.Action
时请不要指定单词Controller
,它会将其放入您的手中。
编辑:看到您编辑的帖子后,您没有使用正确的控制器。
试试这个:
$('#btnDialogPrint').click(function () {
location.href = '<%= Url.Action("Print", "Contract", new { id = Model.SalesContractId}) %>';
});
编辑2:我知道问题!您正在将Razor语法与网络表单语法混合使用!试试这个:
$('#btnDialogPrint').click(function () {
location.href = '@Url.Action("Print", "Contract", new { id = Model.SalesContractId})';
});
另一个问题是您尝试在JavaScript文件中执行此操作,您无法在JavaScript文件中使用Razor语法,而是在视图中
答案 1 :(得分:4)
波姆斯特尔;你混淆了Razor和aspx ..
使用@ Url.Action(“打印”,“合同”,新{id = Model.SalesContractId})创建链接,即
$('#btnDialogPrint').click(function () {
location.href = '@Url.Action("Print", "Contract", new { id = Model.SalesContractId})';
});
你还有什么地方做过这个?
您的控制器也是合同不打印
答案 2 :(得分:2)
你在一个代码片段中使用Razor,在下一个代码片段中使用asp。这是故意的吗?
假设您只想调用控制器:
首先尝试在代码中更改以下内容:
$('#btnDialogPrint').click(function () {
location.href = '@Url.Action("Print", "Contract", new { id = Model.SalesContractId})';
});
或
<%=Html.ActionLink("Print", "Contract", new { id = Model.SalesContractId})%>
否则:
使用Ajax:
身体:
<input type="button" value="Print" id="btnDialogPrint" onclick="print()"/>
在剧本中:
<script type="text/javascript">
function print() {
$.get('@Url.Action("Print", "Contract", new { id = Model.SalesContractId})');
}
</script>
答案 3 :(得分:0)
这就是我想要的,但谢谢大家。
$('#btnDialogPrint').click(function () {
window.location = '../Print/' + $('#SalesContractId').val();
});