我有一个表格来注册申请人的工作,但是填写表格的用户没有用户来验证他是否是有效的用户。
表单有一个参数,表明申请人正在寻找什么工作。
//This is the controller action
public ActionResult RegisterApplicant(int job_id)
{
var formModel = new FormModel(){
job_id = job_id
};
return View(formModel);
}
///This is the view
@model Jobs.Models.FormModel
<div class="container">
@using(Html.BeginForm("RegisterApplicant")){
@Html.HiddenFor(model=>model.job_id)
//Other Fields Here
<input type="submit" value="Save">
}
</div>
是否有办法生成URL以及包含作业JOB_ID的标记 调用RegisterApplicant方法,允许未经过身份验证的用户填写 表格。
我想避免在访问该方法的URL中明确显示job_id。
我将使用该URL通过电子邮件将其发送给求职者。 感谢。
答案 0 :(得分:1)
您可以为每个作业生成一个Guid并与作业ID相关联。
var job = new Job()
{
job_id = <id>,
token = Guid.NewGuid().ToString();
}
JobService.SaveJob(job);
然后,更改您的控制器以接收令牌并使用它找到该作业。
public ActionResult RegisterApplicant(string jobToken)
{
var job = JobService.GetJobByToken(jobToken);
var formModel = new FormModel(){
job_id = job.job_id
};
return View(formModel);
}
** JobService只是一个假设的服务,因为我不知道你的实际代码是如何实现的。