我在MVC中制作了一个颜色选择器,它可以工作,但是知道它不再起作用了。 我收到此错误“ InvalidOperationException:不允许子操作执行重定向操作。”
我尝试了一切。尝试了一些旧代码,这是一个测试版本。它不起作用。
我是MVC的新手。我制作一个Web界面来控制ledstrip。
HTML代码:
<div class="Index-Wrapper">
<form action="/Lichten/LedStripOn" method="post">
@Html.EditorFor(T => T.Color, new { htmlAttributes = new { @class = "form-control" } })
<button type="submit" value="Submit">ON</button>
</form>
<button type="button" onclick="location.href='@Html.Action("LedStripOff","Lichten")'">OFF</button>
ControllerCode:
// GET: Lichten
public ActionResult LedStrip()
{
return View();
}
// GET: Lichten/LedStripOn
public ActionResult LedStripOn(Models.LedStrip form)
{
if (ModelState.IsValid)
{
ViewBag.Kleur = form.Color;
int R = Convert.ToInt32(form.Color.Substring(1, 2), 16);
int G = Convert.ToInt32(form.Color.Substring(3, 2), 16);
int B = Convert.ToInt32(form.Color.Substring(5, 2), 16);
ViewBag.R = R;
ViewBag.G = G;
ViewBag.B = B;
/*SerialPort mySerialPort = new SerialPort("COM5", 9600);
mySerialPort.Open();
mySerialPort.Write(1 + ";" + R + ";" + G + ";" + B);
mySerialPort.Close();
*/
return View();
}
else
{
return View("LedStrip", form);
}
}
// GET: Lichten
public ActionResult LedStripOff()
{
/*SerialPort mySerialPort = new SerialPort("COM5", 9600);
mySerialPort.Open();
mySerialPort.Write(0);
mySerialPort.Close();
*/
return RedirectToAction("LedStrip");
}
错误消息:
InvalidOperationException: Child actions are not allowed to perform redirect actions.