将查询字符串参数传递给MVC控制器中的JsonResult操作

时间:2019-02-08 15:42:23

标签: asp.net-mvc

我试图将查询字符串参数传递给控制器​​中的JsonResult操作。我不断收到以下错误:

值不能为null。 参数名称:字符串

我需要此URL中的task_id:

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 :(得分:0)

要将task_idemail一起传递给您的TasksExist(string email, string task_id)方法,您必须在task_id的{​​{1}}属性中提及AdditionalFields属性如下:

Remote