Передать параметр Query String в действие JsonResult в контроллере MVC - PullRequest
0 голосов
/ 08 февраля 2019

Я пытаюсь передать параметр строки запроса в действие JsonResult в контроллере.Я продолжаю получать следующую ошибку:

Значение не может быть нулевым.Имя параметра: String

Мне нужен идентификатор_задачи из этого URL:

TaskIn? Task_id = 33

На мой взгляд, я пробовал (не с той же ошибкой):

 @model TaskingSystem.Models.AcceptTasksViewModel

 @{string task_id = @Request.QueryString["task_id"];}
 @Html.HiddenFor(m => m.task_id)

В контроллере:

  public JsonResult TasksExist(string email, string task_id)
    {

        int tasks_id = int.Parse("task_id");
        return Json(db.Tasks_Validate.Any(e => e.Email == email && e.task_id == tasks_id), JsonRequestBehavior.AllowGet);

    }

Моя модель:

 public class AcceptTasksViewModel{

    [Required]
    [DataType(DataType.EmailAddress)]
    [Display(Name = "Email:")]
    //Using Remote validation attribute   
    [Remote("TasksExist", "Task_Results",  ErrorMessage = "Email does not exists in database. Please try a different email address.")]
    public string email { get; set; }

    public int task_id { get; set; } 

    public string FirstName { get; set; }

    public string LastName { get; set; }
}

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

  int tasks_id = int.Parse(Request.Params["task_id"]);

1 Ответ

0 голосов
/ 08 февраля 2019

Чтобы передать task_id вместе с email в ваш TasksExist(string email, string task_id) метод, вы должны указать task_id в AdditionalFields свойстве атрибута Remote следующим образом:

[Remote("TasksExist", "Task_Results",AdditionalFields = "task_id"  ErrorMessage = "Email does not exists in database. Please try a different email address.")]
public string email { get; set; }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...