我在rails视图中有一个嵌套的表单,就像这样调用
<% f.fields_for :invoice_item_numbers do |item_no_form| %>
<%= render 'invoice_item_number', :f => item_no_form %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
部分(_invoice_item_number.html.erb)看起来像这样
<div class='invoice_item_numbers'>
<% if f.object.new_record? %>
<li><%= f.label :item_number %><%= f.text_field :item_number %>
<%= link_to_function "remove", "$(this).parent().remove()", :class => 'remove_link' %></li>
<% else %>
<li class="inline"><%= f.label :item_number %><%= f.text_field :item_number %>
</li><li class="inline"><%= f.label :description %><%= invoice_item_number.description %></li><li><%= f.label :amount %><%= f.text_field :amount %>
<%= f.check_box '_destroy', :class => 'remove_checkbox' %>
<%= f.label '_destroy', 'remove', :class => 'remove_label' %></li>
<% end …Run Code Online (Sandbox Code Playgroud) 要调用此部分视图:
<% form_for(:subscription, :url => city_subscriptions_path(@city)) do |form| %>
<%= form.hidden_field :city_id, :value => @city.id %>
<%= form.text_field :email, :size => 30 %>
<%= form.submit "Email Me" %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
由于我在不同的地方使用这个局部视图,如何更改调用者以便它将为form_for助手传递哈希?所以当调用帮助器时会是这样的:
<% form_for(:subscription, :url => city_subscriptions_path(@city), :html => {:id => 'main_input' }) do |form| %>
<%= form.hidden_field :city_id, :value => @city.id %>
<%= form.text_field :email, :size => 30 %>
<%= form.submit "Email Me" %>
<% end %>
Run Code Online (Sandbox Code Playgroud) 我有一个视图模型,包含5个类的实例作为子属性.这些子属性使用局部视图呈现,如下所示:
<%Html.RenderPartial("_EntryItemForm", Model.EntryItem1, new ViewDataDictionary { TemplateInfo = new System.Web.Mvc.TemplateInfo { HtmlFieldPrefix = "EntryItem1" } }); %>
<%Html.RenderPartial("_EntryItemForm", Model.EntryItem2, new ViewDataDictionary { TemplateInfo = new System.Web.Mvc.TemplateInfo { HtmlFieldPrefix = "EntryItem2" } }); %>
<%Html.RenderPartial("_EntryItemForm", Model.EntryItem3, new ViewDataDictionary { TemplateInfo = new System.Web.Mvc.TemplateInfo { HtmlFieldPrefix = "EntryItem3" } }); %>
<%Html.RenderPartial("_EntryItemForm", Model.EntryItem4, new ViewDataDictionary { TemplateInfo = new System.Web.Mvc.TemplateInfo { HtmlFieldPrefix = "EntryItem4" } }); %>
<%Html.RenderPartial("_EntryItemForm", Model.EntryItem5, new ViewDataDictionary { TemplateInfo = new System.Web.Mvc.TemplateInfo { HtmlFieldPrefix = "EntryItem5" } }); …Run Code Online (Sandbox Code Playgroud) 有没有办法在rails中呈现包含相应代码的局部视图?
例如:我希望能够创建一个部分视图,该视图将显示我网站上的前5个foobar.这部分需要伴随代码从数据库中检索一些foobar,根据算法对它们进行排名,然后输出前5个视图.
我希望能够将这个部分包含在我喜欢的任何页面上,最好只使用类似的东西
<%= render :action => "top_five_foobars" %>
Run Code Online (Sandbox Code Playgroud)
这可行吗?我已经习惯了asp.net mvc,在那里你可以创建一个运行一些代码并返回部分代码的动作,但它似乎在rails中只返回模板...
我在某处看到了类似的东西(特别是如果实体是零,那么不显示部分),但我似乎无法复制功能.有没有办法简写以下内容?
<% if @sales_orders.any? %>
<%= render @sales_orders %>
<% else %>
<%= render 'shared/no_records' %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
就像是:
<%= render @sales_orders || 'no records found' %>
Run Code Online (Sandbox Code Playgroud)
或者(伪,但你得到漂移):
<%= @sales_orders ? render(@sales_orders) : render('shared/no_records') %>
Run Code Online (Sandbox Code Playgroud) 有没有办法确定视图是否呈现为部分?
我希望通过捕获这个来扩展我正在编写的部分的重用...并且如果需要,为View分配适当的布局.
目前我只是在div中渲染它,但我也可以看到我们将它用作模态并且可能是它自己的页面.
(模态不应该要求任何改变,所以不用担心)
编辑:澄清我的要求.
我想知道是否还有确定由...呈现的视图之间的差异
/path/to/controller
和
Html.Partial("/path/to/view.cshtml")
我知道这个问题可能会重复。但是我的问题是,我希望在同一页面上的按钮单击进入div标签后显示我的局部视图。当我单击按钮时,部分视图正在显示,但不在div标签的同一页面上,但是在其他页面上却打开。这是我的代码:
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<ApricaCRMEvent.Models.CRM.DatabaseEntities.CRM_Doctor_Request>" %>
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
MDLNoDDLIndex
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<script src="../../Scripts/jquery.js" type="text/javascript"></script>
<script src="../../Scripts/jquery-migrate-1.0.0.js" type="text/javascript"></script>
<script type="text/javascript">
//script for binding drop down list value from view to model
function TestFun()
{
var mdlno = $("#ddlMDLNo").val();
var txtmdlno = document.getElementById("Request_For_Id");
txtmdlno.value = mdlno;
//alert(txtmdlno.value);
}
//script for loading partial view into div tag "viewlist"
$(function () {
$('form').submit(function () {
if ($(this).valid()) {
$.ajax({
url: this.action,
type: this.method,
data: $(this).serialize(),
beforeSend: function …Run Code Online (Sandbox Code Playgroud) 是否存在包含可从局部内部访问的局部名称的变量?
render :partial => 'foo'
Run Code Online (Sandbox Code Playgroud)
在_foo.haml中:
.name
= partial_name # would output "foo"
Run Code Online (Sandbox Code Playgroud) 我有一个MVC 4应用程序,有几个视图.即产品,食谱,Distrubutors和商店.
每个视图都基于一个模型.
让我们保持简单,并说我所有的控制器都传递类似的视图模型,看起来像我的产品操作:
public ActionResult Index()
{
return View(db.Ingredients.ToList());
}
Run Code Online (Sandbox Code Playgroud)
好的,这很好,没问题.但是现在我的所有页面都工作了,我想改变我的导航(每个视图有下拉列表)来加载该模型中的项目.
所以我会有4个按钮(产品,食谱,分配器和商店)的导航.
当您翻转每个按钮(假设我们滚动产品按钮)时,下拉列表会列出产品.
要做到这一点,我需要创建一些类型的ViewModel,其中包含所有这四个模型.显然,我不能为每个导航元素剪切出PartialView并使用
@model IEnumerable<GranSabanaUS.Models.Products>
Run Code Online (Sandbox Code Playgroud)
并为该下拉列表重复产品,因为那时导航只能在产品视图中使用,而不能在其他任何地方使用.
(After the solution)
AND YES ROWAN你在我创建的导航类型中是正确的,请看这里:

我正在开发一个在asp.net core 2 razor页面上运行的项目.我需要一个解决方案来将部分视图或组件加载到RAZOR页面中,我也可以发送来对象(某些类模型或基本字符串).
这是我想加载局部视图的详细页面.使用此代码:
@{
await Html.RenderPartialAsync("Shared/Partial/DeleteModal", Model.DeleteModalModel);
}
Run Code Online (Sandbox Code Playgroud)
这是我内心的部分观点
<div class="modal fade" id="deleteModal" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header bg-red">
<h4 class="modal-title" id="defaultModalLabel">D?KKAT KAYIT S?L?NECEKT?R !</h4>
</div>
<div class="modal-body">
</div>
<div class="modal-footer">
<input type="submit" asp-page-handler="Delete" class="btn bg-red m-t-15 waves-effect" value="Sil" data-toggle="modal" data-target="#deleteModal" />
<button type="button" class="btn bg-indigo m-t-15 waves-effect" data-dismiss="modal">@Html.DisplayNameFor(model => Model.ViewModel.Buttons.Close)</button>
</div>
</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
down是局部视图模型
using Microsoft.AspNetCore.Mvc.RazorPages;
namespace Q.Presentation.System.Razor.Pages.Shared.Partial
{
public class DeleteModalModel : PageModel
{
public string Message { get; set; } …Run Code Online (Sandbox Code Playgroud) partial-views ×10
asp.net ×1
asp.net-mvc ×1
c# ×1
forms ×1
jquery ×1
navigation ×1
nested-forms ×1
razor ×1
razor-pages ×1
validation ×1
viewmodel ×1