【问题标题】:Custom Form Piranha CMS does not render in "Content" area自定义表单 Piranha CMS 不会在“内容”区域呈现
【发布时间】:2014-12-22 20:41:24
【问题描述】:

我正在尝试在 Piranha CMS 2.2.4 中实现自定义表单。表单呈现到新页面,仅显示表单。我的目标是使表单像普通内容页面一样呈现。

我的代码sn-ps: 索引.cmshtml

@inherits Piranha.WebPages.SinglePage<Piranha.Models.PageModel>
@{
  var msg = "";

  if (IsPost)
  {
    var order = new Order()
    {
      Item = Request["Item"],
      Quantity = Request["Quantity"]
    };
    order.Save();
    msg = "Your order is saved!";
  }
}

@if (!String.IsNullOrEmpty(msg))
{
  <p>@msg</p>
}
<div>
  <form method="post">
    <input name="Item" />
    <input name="Quantity" />
    <button type="submit">Let's buy it!</button>
  </form>
</div> 

Order.cs:

public class Order
{
  public String Item { get; set; }
  public String Quantity { get; set; }

  public Order()
  {
  }

  public void Save()
  {
  }
}

我错过了什么?

感谢任何帮助

【问题讨论】:

    标签: twitter-bootstrap piranha-cms


    【解决方案1】:

    我认为默认模板没有 _PageStart.cshtml,因此除非您手动添加了一个指定的 布局,否则您需要在页面中指定它。

    问候

    哈坎

    【讨论】:

      【解决方案2】:

      你拯救了我的一天!

      我修改了表格,它可以工作。我对 MVC 很陌生,我相信有更简洁的方法可以达到相同的结果。但现在它有效。 谢谢!

      新代码: @inherits Piranha.WebPages.SinglePage

      @{
        //this is the main 'trick'
        Layout = "~/Content/_Layout.cshtml";
        Page.Title = Model.Page.Title;
      }
      
      <div>
        <form method="post">
          <input name="Item" />
          <input name="Quantity" />
          <button type="submit">Let's buy it!</button>
        </form>
      </div>
      
      <div class="content">
        <div class="main">
          <h4>@Model.Page.Title</h4>
          //@Model.Regions.Content
      
          @{
            var msg = "";
      
            if (IsPost)
            {
              var order = new Order()
              {
                Item = Request["Item"],
                Quantity = Request["Quantity"]
              };
              order.Save();
              msg = "Your order is saved!";
            }
          }
      
          @if (!String.IsNullOrEmpty(msg))
          {
            <p>@msg</p>
          }
      
        </div>
        <div class="sidebar">
          @RenderPage("~/Shared/Sidebar.cshtml")
        </div>
      </div>
      

      【讨论】:

        猜你喜欢
        • 2014-11-02
        • 1970-01-01
        • 2013-09-26
        • 2021-03-06
        • 2015-09-09
        • 1970-01-01
        • 2014-09-10
        • 1970-01-01
        • 2011-11-05
        相关资源
        最近更新 更多