我正在做一个Nopcommerce,并且需要生成发票(定制不像他们已经提供的,因为它不能解决我们的目的).我们需要生成发票
在新的选项卡(使用另一个cshtml文件)使用控制器的方法也我正在传递模型数据视图.
在新的选项卡(使用另一个cshtml文件)使用控制器的方法也我正在传递模型数据视图.
<tr> <td class="adminTitle"> @Html.NopLabelFor(model => model.ProbableDeliveryDate): </td> <td class="adminData"> @Html.EditorFor(model=>model.ProbableDeliveryDate) </td> </tr> <tr> <td> @if(Model.CanGenrateInvoice) { <input type="submit" name="generateinvoice" value="@T("Admin.Orders.Fields.generateinvoice")" id="generateinvoice" class="adminButton" /> } </td> </tr>
我必须发布数据以获取值为可能的传递日期到控制器方法,之后要打开视图在新的选项卡.
我该怎么办?
解决方法
如果您通过Html.ActionLink从第一页获取操作,您可以这样做:
Html.ActionLink("Open Invoice","ActionName","ControllerName",new { id = Model.InvoiceID },new { target = "_blank" });
指定target =“_blank”将在新选项卡中打开
更新
由于您将模型发布到控制器(我希望RedirectToAction可以帮助打开一个新的窗口/选项卡,但不是这样)
我的疯狂感觉正在刺激你的流动…这只是我,但我会做一些不同的事情,如
>将模型发布到控制器
>保存生成发票的数据
>将InvoiceID返回到操作
>将InvoiceID添加到模型中
>发送模型回到视图
>通知用户
>发票已生成,并显示如上所述的链接,允许用户打开发票或
>这提供了完美的清洁解决方案来显示模型错误,如果有的话
您的看法可能有一块剃刀代码:
@{ if(Model.InvoiceID != null && Model.InvoiceID !=0) { @Html.ActionLink("Open Invoice",new { target = "_blank" }); } }