Я пытаюсь передать два параметра в функцию Url.Action
с помощью jQuery ajax, и передается только первый параметр. Оба параметра правильно отображаются в функции ajax при отладке. Значения, переданные в data
, переданы правильно.
Что я делаю неправильно?
Вот код из представления:
<script type="text/javascript">
$(function () {
$("#sendForm").click(function () {
//they both show correctly in the console
console.log('@ViewData["recordURL"]');
console.log('@ViewData["title"]');
$.ajax({
url: '@Url.Action("SendEmail", "Search", new { title = ViewData["title"], recordURL = ViewData["recordURL"] })',
type: "POST",
data: {
//placed these here so don't have to intersperse javascript with razor code in Url.Action
recepient: $("#recepient").val(),
message: $("#message").val()
},
success: function (result) {
$(".emailForm").hide();
$(".results").text(result);
window.setTimeout(closeEmailPopup, 3500);
}
});
});
});
</script>
И от контроллера:
[HttpPost]
public virtual ActionResult SendEmail(string title, string recordURL, string recepient, string message = "")
{
// title is correct value, recordURL is null.
// If I switch the order in the URL.Action in the View,
// then recordURL has correct value, and title is null
//recepient and message have correct value
}