Laiju k Ответов: 1

Передача нескольких параметров через представление в MVC


  <td style="width: 5%;" class="text-center">
                                                    <a href="AllUser/Add/@Model[i].UserId" title="Click here to edit"></a>
</td>


Мы проходим мимо @
Model[i].UserId
для регулярного редактирования .Теперь есть требование, что нам нужно передать еще один идентификатор через представление, то есть
@Model[i].RoleId
.Эти два значения привязаны к виду из модели, для которой я получаю значение
Model[i].UserId
на соответствующей ActionResult.Кстати, я новичок в MVC.Я перепробовал много вещей по этому поводу, если у кого-то есть какие-то идеи, пожалуйста, помогите.
заранее спасибо

Что я уже пробовал:

Я уже пробовал
За всемипользователь/добавить модель/@[я].Имя пользователя,@модель[я].RoleId
За всемипользователь/добавить/ИД=@модель[я].Идентификатор пользователя,мпог=@модель[я].RoleId
За всемипользователь/добавить/ИД=@модель[я].Идентификатор пользователя и усилитель;Рид=@модель[я].RoleId

David_Wimbley

Вам нужно показать свой контроллер, который вы создали для этих параметров, которые вы пытаетесь получить в своем представлении.

Кроме того, нужно знать, сделали ли вы что-нибудь с вашим RoutesConfig.cs (я думаю, что это так называется, не могу вспомнить, но файл с маршрутами находится в папке App_Data), чтобы настроить настроенную маршрутизацию в вашем проекте.

То, что вы пытаетесь сделать, довольно прямолинейно, если действие в вашем контроллере настроено на принятие 2 параметров.

Laiju k

да, действие принимает два параметра, но я не знаю синтаксиса представления.Извините за задержку

David_Wimbley

Это не то, о чем я спрашивал...Где ваш код для контроллера. Ваш вопрос касается действия ваших контроллеров, но вы не предоставляете код для него.

Laiju k

public ActionResult Add(long ? удостоверение личности,Лонг ? RoleId)
{

Я не могу отправить полный код. Ниже решение работало для меня, мне просто нужен был правильный синтаксис.Спасибо за помощь и извините, если доставили какие-то неудобства.

1 Ответов

Рейтинг:
12

benjaminemanuel13

Извините, я думал, что вы используете WebApi - третье решение (прямо внизу) - это решение, использующее только MVC...

Если вас не интересует решение WebApi, прыгайте на дно...

Самый простой способ сделать это-использовать [FromUri] в вашем контроллере api следующим образом:

Улучшенный ответ (2) ниже (но прочитайте первое решение сейчас, чтобы понять второе)

[Route("api/Values/Add")]
[HttpGet]
 public string Add([FromUri] int userId, [FromUri] int userRole)
 {
     return "Id: " + userId + ", RoleId:" + userRole;
 }


В представлении вы используете следующее:

<a href="api/Values/Add/?userId=@Model.UserId&userRole=@Model.UserRole" title="Click here to edit">Click here to edit</a>


Вышесказанное можно продемонстрировать на benemanuel.net/Testing
В этом примере userId и userRole просто возвращаются в виде строки.

Если вы хотите делать более сложные вещи, подумайте об использовании json - если вам нужна помощь в этом, свяжитесь со мной.

Решение 2==================

Вместо приведенного выше кода контроллера api используйте следующее:

[Route("api/Values/Add2")]
[HttpGet]
   public string Add2([FromUri] User user)
   {
      return "Id: " + user.UserId + ", Role: " + user.UserRole;
   }


При этом предполагается, что класс с именем пользователя, userId и свойства UserRole.


Третье решение - только MVC====================

Просто использовать:

Якорное звено-это:
<a href="Testing/Testing/?userId=@Model.UserId&userRole=@Model.UserRole" title="Click here to edit">Click here to edit</a><br /><br /><br />


public ActionResult Testing(User user)
   {
       return View(user);
   }


Опять же, это предполагает класс User со свойствами UserId и UserRole...

В следующем представлении пользователь используется в качестве переданной модели (как показано ниже benemanuel.net/Testing - третье звено отключено...):

<h2>Testing</h2>

Id: @Model.UserId<br/><br />
UserRole: @Model.UserRole


Извините, что морочу вам голову всякой ерундой с WebApi (хотя WebApi довольно крут для такого рода вещей).

Бен


Laiju k

Большое спасибо третий работает