自定义表单食人鱼CMS不会在“内容”区域中呈现

时间:2014-12-22 20:41:24

标签: twitter-bootstrap piranha-cms

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

我的代码片段: Index.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()
  {
  }
}

我缺少什么?

感谢任何帮助

2 个答案:

答案 0 :(得分:0)

我认为默认模板不具有_PageStart.cshtml,因此除非您手动指定布局,否则需要在页面中指定它。

此致

哈坎

答案 1 :(得分:0)

你救了我的一天!

我修改了表单并且它有效。我对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>