标签: partial-views

单击按钮时使用部分视图更新 DIV(动态)

所以我想做的事情几乎与您在这里找到的一样: http ://www.makeitspendit.com/calling-asp-mvc-controllers-from-jquery-ajax/

它会完全按照我想要的方式执行,但是为所有 4 个按钮编写相同的脚本并不是很干燥。(嗯,一点也不干)

我想要一个脚本来根据按钮的 ID 调用正确的视图,这样代码只需在我的页面上出现一次。我尝试将 this.id 传递到函数调用中,并在 ajax 调用的“url:”属性中使用串联,但这不起作用。
例子:

<div id="projectDiv">

<button onclick="loadProject(this.id)" id="_Project1">Project 1</button>
<button onclick="loadProject(this.id)" id="_Project2">Project 2</button>

<script>    
    function loadProject(projectID) {
          $.ajax({
            url: ("/Projects/Project/"+projectID),
            datatype: "text",
            type: "POST",
            success: function (data) {
              $('#projectDiv').html(data);
            },
          });
        });
</script>
Run Code Online (Sandbox Code Playgroud)

在控制器中:

[HttpPost]
public ActionResult Project(string id)
{
    return View(id);
}
Run Code Online (Sandbox Code Playgroud)

我已经对此进行了全面搜索,发现了类似的东西(但不够相似,不足以得出我需要的东西),但找不到这种情况——我认为这种情况很常见,足以提供更多信息。

示例代码说明了我希望它如何工作,但我似乎无法像那样将变量传递到 url 属性中。虽然我确实对 ASP.NET MVC 很陌生,但这似乎应该是非常基本的,但我已经在这个问题上停留了一分钟。

ajax asp.net-mvc partial-views

1
推荐指数
1
解决办法
9253
查看次数

局部视图中的模型为空 - asp.net core razor pages

我正在使用 asp.net 核心 2.1。

我的主页在 Pages 文件夹下,我的部分视图 _test2 位于共享文件夹中。这是我的主页:

public class MainModel : PageModel
    {
        public IRepositoryStudent irep;
        public MainModel (IRepositoryStudent _irep){
         irep = _irep;
        }
        [BindProperty]
        public Student student{ get; set; }

        public void OnGet()
        {
            student = irep.GetFirst();
        }
    }
Run Code Online (Sandbox Code Playgroud)

这是我的 Main.cshtml:

@page
@model APWeb.Pages.MainModel

<h2>Main</h2>
<partial name="_test2" model="Model.student" />
Run Code Online (Sandbox Code Playgroud)

这是我的部分观点:_test2:

@page
@*
    For more information on enabling MVC for empty projects, visit http://go.microsoft.com/fwlink/?LinkID=397860
*@

@model Student
@{ 
<h1 >@Model.Name</h1>}
Run Code Online (Sandbox Code Playgroud)

我在局部视图中的模型为空,并且出现此错误:

NullReferenceException: Object reference not set to an …
Run Code Online (Sandbox Code Playgroud)

partial-views asp.net-mvc-partialview asp.net-core razor-pages asp.net-core-2.1

1
推荐指数
1
解决办法
389
查看次数

如何在不使用剃刀页面上的模型的情况下将一个或两个字符串从页面传递到部分视图中?

我有一个简单的标注部分,我想以这种方式实现或非常接近它。

<partial name="_Callout" model='"Aviso:Todos..."' />
Run Code Online (Sandbox Code Playgroud)

在部分视图中,我有这个简单的代码(稍后会变得更复杂)

<div class="callout callout-info"><strong>Aviso</strong>Todos...</div>
Run Code Online (Sandbox Code Playgroud)

我想在部分中我将分割字符串并将 s[0] 放入 Strong 中,将 s[1] 放入 div 中。

必须有一种简单的方法来传递字符串,可能可以执行 new string[] {"",""} 但不确定这是将数据传递到部分视图的正确方法。

partial-views asp.net-core razor-pages

1
推荐指数
1
解决办法
992
查看次数

在同一页面上渲染两个部分视图

我可以显示所有客户的列表,我可以显示所有订单的列表,我想进一步.

我想在同一页面上呈现两个部分视图,以显示与该客户相关的客户详细信息和订单.

 <%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage< MyDemo.Models.CustomerAndOrdersViewModel >" %>

<% Html.RenderPartial("CustomerDetails", this.ViewData.Model.Customer); %>
<% Html.RenderPartial("CustomerOrders", this.ViewData.Model.Order); %>
Run Code Online (Sandbox Code Playgroud)

我创建了一个viewmodel

public class CustomerAndOrdersViewModel
{
    public CustomerAndOrdersViewModel(Customer customer,
                        IEnumerable<Order> orders)
    {
        this.Customer = customer;
        this.Order = orders;
    }

    public Customer Customer { get; set; }
    public IEnumerable<Order> Order { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

在我的客户控制器中我定义了

    ICustomerRepository customerRepository;
    IOrderRepository orderRepository;

    public CustomersController()
        : this(new CustomerRepository())
    {
    }

    public CustomersController(ICustomerRepository repository)
    {
        customerRepository = repository;
    }

    public CustomersController(IOrderRepository repository)
    {
        orderRepository = repository;
    } …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc partial-views

0
推荐指数
1
解决办法
2427
查看次数

将局部变量传递给一部分的hidden_​​field

我正在尝试将这些局部参数传递给部分形式,并将它们传递给hidden_​​fields。我无法将值直接放入表单,因为它们会发生变化。任何帮助将不胜感激。

我有:

    <% form_for :user, @user, :url => { :action => "create", :controller => "users"} do |f| %>
      <%= f.error_messages %>
      <%= render :partial => "form", :locals => { :f => f, :position => 'Company Commander', :battalion_id => @battalion.id, :company_id => c.id} %>
      <%= f.submit "Register" %>
    <% end %>
Run Code Online (Sandbox Code Playgroud)

_form.html

<%= f.hidden_field (:position, :value => :position) %>
<%= f.hidden_field (:battalion_id, :value => @battalion.id) %>
<%= f.hidden_field (:battalion_id, :value => @company.id) %>

<%= f.hidden_field (:roles, :value => "Company") %>

<%= …
Run Code Online (Sandbox Code Playgroud)

parameters ruby-on-rails partial-views

0
推荐指数
1
解决办法
3573
查看次数

使用相同的局部视图进行编辑和显示

我想使用相同的局部视图来显示记录和编辑记录.两个函数的布局都是相同的,它看起来比拥有EditRecord局部视图和DisplayRecord局部视图要清晰得多.如果我只有一个部分视图要更新,维护将更容易.

我现在正在使用它并且它有效:

<div class="editor-label">
    @Html.LabelFor(model => model.FirstName)
</div>
<div class="editor-field">
    @if (@ViewBag.ViewMode == "display")
    {
        @Html.DisplayFor(model => model.FirstName)
    }
    else
    {
        @Html.EditorFor(model => model.FirstName)
    }
    @Html.ValidationMessageFor(model => model.FirstName)
</div>
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法呢?

谢谢.

.net c# asp.net-mvc partial-views asp.net-mvc-3

0
推荐指数
1
解决办法
1077
查看次数

在ASP.NET MVC共享区域的partialview中"无法解决操作"

我正在研究ASP.NET MVC3.我有一个局部视图RestaurantAdminNavigation.ascx,我从Views/Restaurant文件Views/Shared夹移动到文件夹.

我在该视图中有一个操作链接

<%:Html.ActionLink("Edit", "Edit", "Restaurant", new { id=Model.OId }) %>

当它在Views/Restaurant文件夹时工作正常,但在文件夹移动后Views/Shared,如果我将参数作为该操作链接的一部分,它会显示错误"无法解决操作编辑".但如果我保持

<%:Html.ActionLink("Edit", "Edit", "Restaurant") %>

它没有告诉我错误.

谷歌搜索后,我明白原因可能是注册路线.我需要在Global.ascx文件中注册路由,但如果这是解决方案,我无法理解我应该编码什么.

c# asp.net asp.net-mvc partial-views asp.net-mvc-3

0
推荐指数
1
解决办法
758
查看次数

将路径传递给rails partial时的NoMethodError

我有3个模型共享这种类似的形式来提交投票.这个表单包含在每个模型中显示页面,所以我想把这个代码放到一个部分来清理一切.

问题/ show.html.erb

<div class="vote">
    <div id="questions">
      <h1><%= @question.votes_count %></h1>
    </div>
    <%= link_to "up", vote_question_path(@question, value: 1), remote: true, method: "post" %>
    <%= link_to "down", vote_question_path(@question, value: -1),remote: true, method: "post" %>
</div>
Run Code Online (Sandbox Code Playgroud)

我已经尝试将此代码移动到部分代码,如下面的代码:

表决/ _form.html.erb

<div class="vote">
    <div id="votes_count">
        Votes: <%= object.votes_count %>
    </div>
    <%= link_to "up", vote_path(object, value: 1),remote: true, method: "post" %>
    <%= link_to "down", vote_path(answer, value: -1), remote: true,  method: "post" %>
</div>
Run Code Online (Sandbox Code Playgroud)

我使用以下调用替换显示页面中的先前代码以呈现部分:

<%= render partial: "votes/form", locals: {object: @question, vote_path: answer_question_path } %>
Run Code Online (Sandbox Code Playgroud)

但是,通过尝试各种字符串方法以及send(path)方法将vote_question_path传递给partial它总是出错 …

ruby ruby-on-rails partial-views path

0
推荐指数
1
解决办法
1131
查看次数

使用太多局部视图是不好的做法?

我是MVC设计范例的新手,我正在制作我的第一个MVC应用程序,其中有一个满是员工的网格,一旦你点击网格上的每个员工,它就会在下面的Tab控件中加载有关员工的更多细节.

标签控件有三个标签,每个标签代表员工信息的不同方面.

现在,我有一个不同的List模型,它转到Grid,然后为选项卡控件中的每个选项卡分离模型/部分View组合.

我之所以选择这种设计有几个原因:

  1. 关注点分离:HTML页面设计也类似于类设计,如果每个HTML部分都在不同的局部视图上,那么代码更易于管理和更清晰.
  2. 模型绑定更容易:我可以将每个局部视图映射到一个模型,并且可以加载和重新加载模型/局部视图组合,而不必担心页面上的其他部分.

我认为这很干净,我喜欢它.但是,我不太确定我对最佳MVC设计实践有多远或多少一致.这是一个糟糕的设计或它只是一个偏好的问题.这样做有什么缺点吗?

c# asp.net-mvc partial-views razor asp.net-mvc-4

0
推荐指数
1
解决办法
745
查看次数

ASP.net MVC 5从Home控制器调用布局中的部分视图

嘿所有我想找到一种方法(或者如果可能的话)来调用这段代码:

<nav>
    <ul class="nav navbar-nav">
        @if (Session["chosenAMT"] is bool == true)
        {
           @Html.Partial("_Menu")
        }
    </ul>
</nav>
Run Code Online (Sandbox Code Playgroud)

当它启动页面时,selectedAMT的值为false,因此导航不会在_Layout.cshtml页面上加载.

但是,一旦用户从下拉列表中选择一个值,我需要启用该部分视图,以便它现在可以向用户显示导航.

当用户从下拉列表中选择一个值时,我将POST调用到HomeController.cs:

$.ajax({
  type: 'POST',
  url: 'Home/showNav',
  cache: false,
  dataType: 'json',
  data: {},
  success: function (response) {
     console.log('worked');
  },
  error: function (response) {
     console.log(response);
  }
});
Run Code Online (Sandbox Code Playgroud)

这是HomeController.cs中showNav代码:

[HttpPost]
public string showNav()
{
   Dictionary<string, string> resultsBack = new Dictionary<string, string>();

   Session["chosenAMT"] = true;

   resultsBack.Add("dback", "GOOD");
   resultsBack.Add("dhead", "worked");
   resultsBack.Add("dinfo", …
Run Code Online (Sandbox Code Playgroud)

c# asp.net asp.net-mvc partial-views asp.net-mvc-5

0
推荐指数
1
解决办法
2439
查看次数