【发布时间】:2021-05-07 06:44:52
【问题描述】:
据我所知,视图绑定到控制器的操作方法,如 PatientController 的 Details 操作方法结果在 Patient->Details.cshtml 文件夹内的 Patient->Details.cshtml 中实现。
我的问题是如何调用另一个控制器操作方法,例如调用 Appointment 的 Index(其中我在 Patient 的 Details 中实现了一个简单的搜索 Index(string ID)) 以及如何渲染或显示结果。
我在Details(患者)里面试过这个
<form asp-controller="Appointments" asp-action="Index" asp-route-id="ID" method="get">
<p>
<dl class="row">
<dt class="col-sm-2">
@Html.DisplayNameFor(m => m.ID)
</dt>
<dd class="col-sm-10">
@Html.DisplayFor(model => m.ID)
</dd>
</dl>
</p>
</form>
但那是渲染Patient ID 属性。
【问题讨论】:
-
这是 .net core 中标签助手的official doc。表单中的标签助手将帮助您执行控制器操作。
rendering ControllerA ID property是什么意思?您想传递一些数据asp-route-id="ID"到ControllerB/Index? -
控制器操作绑定视图,而不是相反。一个动作应该对应一个端点(例如一个url模式)。您可以编写一个调用其他操作的操作,然后使用来自两个模型的数据呈现视图...
-
@YiyiYou 是的,例如 ControllerA 代表显示患者数据的页面(ID,姓名,...),我还需要调用存储他的诊所预约的页面( ControllerB)这就是为什么我将 id 发送到 index 以获取结果。
-
您可以使用ControllerB:
public IActionResult Index(string id){return View();},然后您可以在ControllerB/Index action中获取id,然后进入ControllerB/Index.cshtml。 -
怎么调用调用呢?创建新实例不起作用。
标签: c# asp.net-mvc asp.net-core razor