Html.ActionLink dans un bouton
Je Suis en train d'essayer de se connecter à une méthode dans mon contrôleur, avec un bouton. Je peux vous connecter via ce lien:
@Html.ActionLink("Print", "Print", new { id = Model.SalesContractId})
Mais je Ne veux pas un lien, je veux que mon bouton sur ma boîte de dialogue pour le faire. J'ai essayé ce qui suit:
$('#btnDialogPrint').click(function () {
location.href = '<%= Url.Action("Print", "Print", new { id = Model.SalesContractId}) %>';
});
Mais il vient de me diriger vers une page que dire de mauvaises demande.
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
}
Ne vous inquiétez pas le code à l'intérieur je le ferais une fois que j'ai à l'intérieur de cette méthode.
Je pourrais peut-être attacher un lien ici?
<input type="button" value="Print" id="btnDialogPrint" />
Mon Point De Vue De Modifier.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" }))
{
- Je pense que vous devriez être en train de faire une requête AJAX obtenir dans le gestionnaire d'événement!
- $.ajax({ url: '@Url.Action("Imprimer","Contrat", new {id = Modèle.SalesContractId})' }); Cela ne fonctionne pas éther
- Pourriez-vous s'il vous plaît regarder mes ajax événement et me montrer ce que je fais de mal
- vous êtes ignorant les résultats de retour.. ont un coup d'oeil à api.jquery.com/jQuery.get
Vous devez vous connecter pour publier un commentaire.
Votre lien dans le jQuery ne correspond pas à la
ActionLink
lien. Aussi, lors de l'utilisation deUrl.Action
ne spécifiez pas le motController
, il va mettre que pour vous.Edit: Après avoir vu votre post édité, vous n'utilisez pas le bon contrôleur.
Essayez ceci:
Edit2: je sais que le problème! Vous avez mélangé la syntaxe Razor avec des formulaires web de la syntaxe! Essayez ceci:
Un autre problème est le fait que vous essayez de faire cela à l'intérieur d'un fichier JavaScript, vous ne pouvez pas utiliser la syntaxe Razor dans un fichier JavaScript, il doit être dans une Vue
Pomster; vous avez mélangé le Rasoir et aspx..
utiliser @Url.Action("Imprimer", "Contrat", new { id = Modèle.SalesContractId}) pour créer votre lien que j'ai.e
Où avez-vous fait cela?
Également votre contrôleur de Contrat, pas d'Impression
Vous utilisez le Rasoir dans un extrait de code et de l'asp dans le suivant. Est-ce intentionnel?
En supposant que vous voulez tout simplement à appeler le contrôleur:
D'abord, essayez de modifier les lignes suivantes dans votre code:
ou
Autrement:
Utiliser Ajax:
Dans le corps:
Dans le script:
C'était ce que je cherchais, Mais merci à tous.