Передача динамических значений JavaScript с помощью Url.action()
Может кто-нибудь сказать, пожалуйста, как передать динамические значения с помощью Url.action().
Что-то вроде,
var firstname="abc";
var username = "abcd";
location.href = '@Html.Raw(@Url.Action("Display", "Customer", new { uname = firstname ,name = username}))';
имя, имя пользователя не получает ссылки внутри метода Url.action().
Как передать эти динамические значения с помощью Url.action()?
4 ответа
@Url.Action()
метод является процессом на server-side
, так что вы не можете передать client-side
значение этой функции в качестве параметра. Вы можете согласовать client-side
переменные с server-side
URL, сгенерированный этим методом, который является строкой на выходе. Попробуйте что-то вроде этого:
var firstname = "abc";
var username = "abcd";
location.href = '@Url.Action("Display", "Customer")?uname=' + firstname + '&name=' + username;
@Url.Action("Display", "Customer")
обрабатывается на server-side
а остальная часть строки обрабатывается на client-side
, конкатенируя результат server-side
метод с client-side
,
Этот ответ не может быть на 100% относящимся к вопросу. Но это решает проблему. Я нашел этот простой способ достижения этого требования. Код идет ниже:
<a href="@Url.Action("Display", "Customer")?custId={{cust.Id}}"></a>
В приведенном выше примере {{cust.Id}} является переменной AngularJS. Однако его можно заменить переменной JavaScript.
Я не пробовал передавать несколько переменных с помощью этого метода, но я надеюсь, что он также может быть добавлен к URL-адресу при необходимости.
Самый простой способ это:
onClick= 'location.href="/controller/action/"+paramterValue'
В моем случае это сработало просто сделав следующее:
Контроллер:
[HttpPost]
public ActionResult DoSomething(int custNum)
{
// Some magic code here...
}
Создайте форму без действий:
<form id="frmSomething" method="post">
<div>
<!-- Some magic html here... -->
</div>
<button id="btnSubmit" type="submit">Submit</button>
</form>
Установите событие нажатия кнопки, чтобы инициировать отправку после добавления действия в форму:
var frmSomething= $("#frmSomething");
var btnSubmit= $("#btnSubmit");
var custNum = 100;
btnSubmit.click(function()
{
frmSomething.attr("action", "/Home/DoSomething?custNum=" + custNum);
btnSubmit.submit();
});
Надеюсь, что это помогает Ватос!