带有 method="POST" 的自定义表单未显示在任务模块 ms teams 中
custom form with method="POST" isn't getting displayed in task module ms teams
我无法在任务模块中显示自定义表单。这是一个只有很少输入元素和 method="POST" 属性的表单。当我删除 "method" 属性时,任务模块会正确显示自定义表单。
我只想 post 输入字段值到控制器。
PS:当我在浏览器中 运行 这些表单时一切正常。我还在团队中添加了有效域,并且任务模块在表单标记中没有 method="POST" 属性的情况下完美呈现。
这是我的带有表单方法的 .cshtml 页面。
这里是控制器class
public class HomeController : Controller
{
public SuspectRegistration registration;
public HomeController()
{
registration = new SuspectRegistration();
}
// GET: /<controller>/
public IActionResult Index()
{
return View();
}
public IActionResult CustomForm()
{
return View();
}
public IActionResult PRFPDetailsForm()
{
return View();
}
// This is the method where I need to get values, it works in browser without any issues.
[HttpPost]
public IActionResult PRFPDetailsForm(SuspectRegistration formData)
{
HttpContext.Session.SetString("formdata", JsonConvert.SerializeObject(formData));
return View("PRFPDetailsForm");
}
public IActionResult PRFPRegistrationConfirmation()
{
var value = HttpContext.Session.GetString("formdata");
var suspectRegistration = JsonConvert.DeserializeObject<SuspectRegistration>(value);
ViewBag.SuspectRegistration = suspectRegistration;
return View();
}
}
我错过了在这里回复。您的后端代码没有问题。在前端,您需要将前端输入值提交给 js 对象中的 "microsoftTeams.tasks.submitTask(youJSObject)",同样的事情您可以在 "OnTeamsTaskModulesSubmitAsync" 方法的 turnContext 中接收。
我无法在任务模块中显示自定义表单。这是一个只有很少输入元素和 method="POST" 属性的表单。当我删除 "method" 属性时,任务模块会正确显示自定义表单。 我只想 post 输入字段值到控制器。
PS:当我在浏览器中 运行 这些表单时一切正常。我还在团队中添加了有效域,并且任务模块在表单标记中没有 method="POST" 属性的情况下完美呈现。
这是我的带有表单方法的 .cshtml 页面。
这里是控制器class
public class HomeController : Controller
{
public SuspectRegistration registration;
public HomeController()
{
registration = new SuspectRegistration();
}
// GET: /<controller>/
public IActionResult Index()
{
return View();
}
public IActionResult CustomForm()
{
return View();
}
public IActionResult PRFPDetailsForm()
{
return View();
}
// This is the method where I need to get values, it works in browser without any issues.
[HttpPost]
public IActionResult PRFPDetailsForm(SuspectRegistration formData)
{
HttpContext.Session.SetString("formdata", JsonConvert.SerializeObject(formData));
return View("PRFPDetailsForm");
}
public IActionResult PRFPRegistrationConfirmation()
{
var value = HttpContext.Session.GetString("formdata");
var suspectRegistration = JsonConvert.DeserializeObject<SuspectRegistration>(value);
ViewBag.SuspectRegistration = suspectRegistration;
return View();
}
}
我错过了在这里回复。您的后端代码没有问题。在前端,您需要将前端输入值提交给 js 对象中的 "microsoftTeams.tasks.submitTask(youJSObject)",同样的事情您可以在 "OnTeamsTaskModulesSubmitAsync" 方法的 turnContext 中接收。