gpt4 book ai didi

asp.net-mvc - MVC——模拟表单 POST

转载 作者:行者123 更新时间:2023-12-02 00:42:59 25 4
gpt4 key购买 nike

我创建了一个 MVC 应用程序,它根据用户数据动态路由操作和 Controller ,因此没有标准操作,而是动态命名的操作。

为了正确地路由 Controller 和操作,每条路由都必须经过一个集中索引,该索引确定用户在这种情况下是否已转到有效系统。即

http://mysite.com/Systems/SystemName/RenameSystem 

...其中 SystemName 是动态系统名称,RenameSystem 是操作。

一旦系统被正确路由到 RenameSystem Controller ,系统会提示用户使用允许他们更改系统名称的文本框。单击提交后,表单将路由回我原来的 Index Controller

public ActionResult Index(string systemName, string action)

代替标准

public ActionResult RenameSystem(string systemName)

我已在逻辑中确定 RequestType 是 POST 还是 GET。如果 RequestType 是 POST,则逻辑出现偏差,可以捕获请求对象中包含的 Form 数据。

我的问题是,如何获取包含我的 systemName 字段的表单数据并对其进行路由,这样我就不需要将数据扔到 switch 语句中。即我不想这样做:

switch case(action)
{
case "RenameSystem":
return RenameSystem(Request.Form["systemName"]);
}

而且我可以动态地发布到标准:

public ActionResult RenameSystem(string systemName)

...只需模拟调用 View 即可。

简单地说,我希望能够采取行动,RenameSystem 并调用它,以便我的 systemName 自动落入 RenameSystem 的 systemName 参数中。

这是否可能,或者是否有任何其他选择来实现这一目标?

谢谢,乔治

最佳答案

尝试创建一个 ControllerActionInvoker 并使用您当前的 ControllerContext 调用 InvokeAction

关于asp.net-mvc - MVC——模拟表单 POST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1971601/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com