相关疑难解决方法(0)

发布重定向获取ASP.NET MVC并使用Restful URL进行验证

我有一个用于编辑页面操作的宁静URL.这在控制器上实现为Edit方法,它接受GET请求和接受POST请求的Edit方法.

这意味着您可以访问编辑URL,它将显示GET表单或保存表单以进行POST.

[HttpGet]
public ActionResult Edit(int id) {
    ...
}

[HttpPost]
public ActionResult Edit(EditModel model) {
    ...
}
Run Code Online (Sandbox Code Playgroud)

Post-Redirect-Get(PRG)模式看起来非常黑白,因为它实质上将每个POST重定向回GET动作.但是,我需要确信这是正确的做法.

我的计划是在POST操作中,如果模型有效,我将使用Post-Redirect-Get模式将用户发送到合理的位置(可能是Index或Details操作).

但是,如果存在模型验证问题,我仍然只想显示视图.我不想重定向用户,因为这意味着将模型和ModelState填充到临时数据中并重定向到GET操作 - 然后将逻辑添加到GET操作中以处理临时数据.我可以通过简单地显示视图来避免所有这些.

是的,如果用户按下F5,它将重新提交表单,他们将显示"重新提交警告",但随后是同一页面(要求他们修复验证错误).但是,他们似乎不太可能会遇到F5并且也没有双重提交的危险,因为表单将再次无法通过验证.

如果验证通过,则将重定向用户,并且可以安全地进行双重提交.

那么我应该实现额外的代码并将数据填充到临时数据中以严格遵循PRG模式,还是在表单有效并且存储数据时使用PRG模式更明智?

asp.net-mvc post-redirect-get

17
推荐指数
2
解决办法
9132
查看次数

在MVC中提交后保留密码文本框值

我正在使用MVC应用程序.在我们的应用程序 我们有一个表单,用于获取用户的详细信息(客户端详细信息).示例,温和,名字,姓氏,密码等.提交后,在控制器本身,我们验证输入的MailID是否已经注册.如果已经注册了,请返回相同的视图并显示错误消息.但所有细节都显示在文本框中,但密码文本框变为空.我想要密码文本框,其值已经输入.

public string Email { get; set; }

    [Required(ErrorMessage = "FirstName is required")]
    public string FirstName { get; set; }

    public string LastName { get; set; }

    [Required(ErrorMessage = "Password is required")]
    [DataType(DataType.Password)]
    [StringLength(40, MinimumLength = 6,
    ErrorMessage = "Password must be between 6 and 12 characters.")]
    public string Password { get; set; }
Run Code Online (Sandbox Code Playgroud)

passwords asp.net-mvc

2
推荐指数
1
解决办法
1607
查看次数

标签 统计

asp.net-mvc ×2

passwords ×1

post-redirect-get ×1