![](/img/trans.png)
[英]How to redirect to a View of another Controller from one Controller's View in ASP.NET MVC 4 Web Application
[英]How to call or return the view of another controller from one controller in ASP.NET Core MVC
我的项目结构是这样的:
控制器/PartographController.cs
控制器/BirthDetailsController.cs
是否可以从一个控制器显示两种创建方法?
比如说我有一个PartographController和一个Partograph/Create.cshtml视图。 在 PartographController 中,我可以轻松地创建新的 partograph。
现在说我还有一个BirthDetailsController和一个BirthDetails/Create.cshtml视图。
我想展示一个控制器的创建方法,但是当用户输入不同的表单并最终尝试提交它时,它会影响特定的控制器。
我怎样才能做到这一点? 有没有好的方法来做到这一点?
提前致谢
其中之一是使用 Javacript 更改发布操作 URL,并将表单定向到您想要的控制器。 我不知道这对您来说是否是一个好的解决方案,但您可以显示和隐藏 2 个不同的表单并单独发布它们。
您可以在目标控制器中尝试如下:
[Route("Partograph/Create")]
public IActionResult Create1()
{
return View();
}
[Route("BirthDetails/Create")]
public IActionResult Create2()
{
return View();
}
将名为“Create1”和“Create2”的两个视图移动到目标文件夹
更新:
我所有的代码和相关的以及调试结果:
楷模:
public class Model1
{
public int Id { get; set; }
public string Name { get; set; }
}
public class Model2
{
public int Id { get; set; }
public string Name { get; set; }
}
public class ViewModel
{
public Model1 M1 { get; set; }
public Model2 M2 { get; set; }
}
在家庭控制器中:
public IActionResult Create()
{
return View();
}
[Route("Model1/Create")]
public IActionResult Create1()
{
return View();
}
[Route("Model2/Create")]
public IActionResult Create2()
{
return View();
}
查看创建:
@model ViewModel
<a>Create M1</a>
<form asp-controller="Model1" asp-action="Create">
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<div class="form-group">
<label asp-for="M1.Id" class="control-label"></label>
<input asp-for="M1.Id" class="form-control" />
<span asp-validation-for="M1.Id" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="M1.Name" class="control-label"></label>
<input asp-for="M1.Name" class="form-control" />
<span asp-validation-for="M1.Name" class="text-danger"></span>
</div>
<div class="form-group">
<input type="submit" value="Create" class="btn btn-primary" />
</div>
</form>
<a>Create M2</a>
<form asp-controller="Model2" asp-action="Create">
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<div class="form-group">
<label asp-for="M2.Id" class="control-label"></label>
<input asp-for="M2.Id" class="form-control" />
<span asp-validation-for="M2.Id" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="M2.Name" class="control-label"></label>
<input asp-for="M2.Name" class="form-control" />
<span asp-validation-for="M2.Name" class="text-danger"></span>
</div>
<div class="form-group">
<input type="submit" value="Create" class="btn btn-primary" />
</div>
</form>
查看创建1:
@model ViewModel
<a>Create M1</a>
<form asp-controller="Model1" asp-action="Create">
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<div class="form-group">
<label asp-for="M1.Id" class="control-label"></label>
<input asp-for="M1.Id" class="form-control" />
<span asp-validation-for="M1.Id" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="M1.Name" class="control-label"></label>
<input asp-for="M1.Name" class="form-control" />
<span asp-validation-for="M1.Name" class="text-danger"></span>
</div>
<div class="form-group">
<input type="submit" value="Create" class="btn btn-primary" />
</div>
</form>
查看 Create2:
@model ViewModel
<a>Create M2</a>
<form asp-controller="Model2" asp-action="Create">
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<div class="form-group">
<label asp-for="M2.Id" class="control-label"></label>
<input asp-for="M2.Id" class="form-control" />
<span asp-validation-for="M2.Id" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="M2.Name" class="control-label"></label>
<input asp-for="M2.Name" class="form-control" />
<span asp-validation-for="M2.Name" class="text-danger"></span>
</div>
<div class="form-group">
<input type="submit" value="Create" class="btn btn-primary" />
</div>
</form>
以我的理解,您想将两个“Create”方法移动到另一个控制器中,如果我的理解有任何错误,请指出
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.