使用参数加载局部视图

时间:2018-10-14 12:37:31

标签: c# asp.net-core

我正在尝试在“ Bootstrap模型”中加载带有Id参数的局部视图

我无法将参数传递给控制器​​

类似这样的东西:

<td>
    <button class="btnShowModal btn btn-primary btnWhiteSpace " type="button">
        Details
        <i class="fas fa-info-circle" aria-hidden="true"></i>
    </button>
</td>

<div class="modal fade" tabindex="-1" id="loginModal"
     data-keyboard="false" data-backdrop="static">
    <div class="modal-dialog modal-sm ">
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal">
                    <i class="fas fa-window-close"></i>
                </button>
                <h4 class="modal-title"> Title</h4>
            </div>
            <div class="modal-body ">
                <partial name=("bid", "details" asp-route-id="item.QuettaReqId" ) />
            </div>
        </div>
    </div>
</div>

我得到的错误是:

  

InvalidOperationException:未找到部分视图'('。搜索了以下位置:
  视图/邮件/(.cshtml
  /Views/Shared/(.cshtml
  /Pages/Shared/(.cshtml

它看起来像路由,但我认为该参数的设置也未如预期那样通过。

3 个答案:

答案 0 :(得分:1)

尝试一下:

@{ Html.RenderAction("YourActionName", "ControllerName", new { parameterName = parameterValue });}

因此,在您的情况下如下:

<div class="modal-body ">
  @{ Html.RenderAction("details", "bid", new { id= item.QuettaReqId});}
</div>

现在,如果您需要特定于ASP.NET Core的解决方案,则可以使用View Components,它比Partial View快得多。

答案 1 :(得分:1)

要从主视图传递Group 1 ^0001|1|0|813|1|860152033876093|! Group 2 ^0002|1|0|813|1|860152033876093|! Group 3 ^0003|1|0|813|1|860152033876093|! 到部分视图,您需要指定正确的部分视图名称和模型。

item.QuettaReqId

对于<div> <partial name="_Details" model="10"/> @await Html.PartialAsync("_Details", 5) </div> ,您需要定义_Details来接受参数。

@model

注意@model int This is Detail View with Id @Model 是部分视图名称。

有关_Details的更多信息,请选中https://docs.wso2.com/display/AM260/Create+a+WebSocket+API

答案 2 :(得分:-1)

由于asp.net引擎找不到视图而导致的错误

您可以将其替换为

@Url.Action("YourActionMethod", "Controller", new { param = "1", param2= "2" })