Asp.net mvc 如何将actionlink参数传递给控制器MVC 5?
如何将Asp.net mvc 如何将actionlink参数传递给控制器MVC 5?,asp.net-mvc,Asp.net Mvc,如何将NextPrevious值传递给控制器 现在NextPrevious总是为空 [HttpPost] public ActionResult PremiumUserRegistration(PartnersVM partnersVM, string NextPrevious) { if (NextPrevious != null) { } } 视图和.js文件 $('.btnActionNext')。单击(函数(){
NextPrevious
值传递给控制器
现在NextPrevious
总是为空
[HttpPost]
public ActionResult PremiumUserRegistration(PartnersVM partnersVM, string NextPrevious)
{
if (NextPrevious != null)
{
}
}
视图和.js文件
$('.btnActionNext')。单击(函数(){
$(this).closest('form')[0].submit();
}); 代码>
@Html.ActionLink(“下一步>>,“PremiumUserRegistration”,新建{controller=“UserRegister”},新建{NextPrevious=“value”,@class=“btnActionNext”,onclick=“return false;”})
添加一个隐藏的:
<input type="hidden" name="Action" />
在post操作中,添加字符串操作
:
[HttpPost]
public ActionResult PremiumUserRegistration(string Action, PartnersVM partnersVM)
{
if (Action == "NEXT")
{
}
}
添加一个隐藏的:
<input type="hidden" name="Action" />
在post操作中,添加字符串操作
:
[HttpPost]
public ActionResult PremiumUserRegistration(string Action, PartnersVM partnersVM)
{
if (Action == "NEXT")
{
}
}
如果要提交表单,请将其添加为隐藏字段
@Html.Hidden("NextPrevious", value)
否则,您在ActionLink方法的错误位置输入了“NextPrevious”值。它应该在RouteValue范围内,而不是htmlAttributes范围内。
正确的方法是:
@Html.ActionLink("Next >>", "PremiumUserRegistration", new { controller = "UserRegister", NextPrevious = "value" }, new { @class = "btnActionNext", onclick = "return false;" })
如果要提交表单,请将其添加为隐藏字段
@Html.Hidden("NextPrevious", value)
否则,您在ActionLink方法的错误位置输入了“NextPrevious”值。它应该在RouteValue范围内,而不是htmlAttributes范围内。
正确的方法是:
@Html.ActionLink("Next >>", "PremiumUserRegistration", new { controller = "UserRegister", NextPrevious = "value" }, new { @class = "btnActionNext", onclick = "return false;" })
NextPrevious从何处填充?为什么不将NextPrevious放在partnervm中。如果它在注册表中是必需的,您应该在视图模型中包含它。@ADyson,它是Action方法字符串参数“NextPrevious”,单击此链接按钮时使用。我想从“NextPrevious”参数中获取“值”。会话位于服务器内,无论从哪个设备访问此web应用程序。在保存文件时,您需要导入Newtonsoft.json nuget,序列化对象并保存到希望保存的路径中。当您需要读取时,读取文件,并将其反序列化为对象,并使用itIm进行多页表单方面的项目。我的项目有9个表格部分,10号是一页9个表格的回顾页。我使用session临时存储数据,并将其作为每个用户的文件进行备份。我设计它的方式是提供灵活性和可用性。如果浏览器突然关闭,数据仍会保存到最后一次工作。如果从另一台计算机登录,我可以从服务器上查找用户文件,并将其重新渲染以继续工作。如果有其他更好的解决方案,我不会使用tempdata。NextPrevious从何处填充?为什么不在partnervm中使用NextPrevious呢。如果它在注册表中是必需的,您应该在视图模型中包含它。@ADyson,它是Action方法字符串参数“NextPrevious”,单击此链接按钮时使用。我想从“NextPrevious”参数中获取“值”。会话位于服务器内,无论从哪个设备访问此web应用程序。在保存文件时,您需要导入Newtonsoft.json nuget,序列化对象并保存到希望保存的路径中。当您需要读取时,读取文件,并将其反序列化为对象,并使用itIm进行多页表单方面的项目。我的项目有9个表格部分,10号是一页9个表格的回顾页。我使用session临时存储数据,并将其作为每个用户的文件进行备份。我设计它的方式是提供灵活性和可用性。如果浏览器突然关闭,数据仍会保存到最后一次工作。如果从另一台计算机登录,我可以从服务器上查找用户文件,并将其重新渲染以继续工作。如果有其他更好的解决方案,我不会使用tempdata不需要定义新路由?不,因为它是一个post,并且动作变量来自标准表单元素,不需要定义新路由。在我的应用程序中,我一直在使用这种技术处理类似的事情。然后,他可以从方法中的表单集合中获取动作变量。是吗?那为什么还要使用一个额外的参数呢?我认为再添加一个参数也不会有什么坏处。。。添加另一个参数不会有任何影响,因为这是一个POST,MVC负责提供数据。如果使用单元测试,这是很有用的,因为您可以在不模仿HttpContext的情况下直接传递一个可测试的值。我并不反对这一点,但我很好奇——这是正确的方法吗。运行时将给我所需的值作为有益的参数。但正如您所说的可测试性,提供值是否可能支持可测试性,但它不能保证在实际运行时成功。不需要定义新路由?不,因为它是一个post,并且动作变量来自标准表单元素,所以不需要定义新路由。在我的应用程序中,我一直在使用这种技术处理类似的事情。然后,他可以从方法中的表单集合中获取动作变量。是吗?那为什么还要使用一个额外的参数呢?我认为再添加一个参数也不会有什么坏处。。。添加另一个参数不会有任何影响,因为这是一个POST,MVC负责提供数据。如果使用单元测试,这是很有用的,因为您可以在不模仿HttpContext的情况下直接传递一个可测试的值。我并不反对这一点,但我很好奇——这是正确的方法吗。运行时将给我所需的值作为有益的参数。但正如您所说的可测试性,提供价值可能支持可测试性,但它并不能保证在实际运行时成功。