title: ASP.NET MVC3 add a HtmlFieldPrefix when calling Controller.PartialView
body: <p>I am rendering a partial view as part of an Ajax request. </p>
  
  <p>When I call the partial view from a view:</p>
  
  <pre class="lang-c# prettyprint-override"><code>int i=0;
  foreach(var rule in Model.Rules) {
      @Html.Partial("ValidationRuleRow", rule, new ViewDataDictionary { 
          TemplateInfo = new System.Web.Mvc.TemplateInfo { HtmlFieldPrefix = string.Format("Rules[{0}]", i) } })   
      i++;
  }
  </code></pre>
  
  <p>I am able to set the HtmlFieldPrefix to allow for proper Model binding.</p>
  
  <p>I want the user to be able to add a new ValidationRuleRow on the fly via ajax, like:</p>
  
  <pre class="lang-javascript prettyprint-override"><code>$.ajax({
      type: "GET",
      url: "/Monitors/NewMonitorValidationRule",
      success: function (data, textStatus, jqXHR) {
          var element = $(data);
          $("#ValidationRuleContainer").append(element);
      }
  });
  </code></pre>
  
  <p>So I have an action in my controller to get the HTML:</p>
  
  <pre class="lang-c# prettyprint-override"><code>public ActionResult NewMonitorValidationRule()
  {
      ValidationRule rule = new ValidationRule{Id = TempSurrogateKey.Next};
      var view = PartialView("ValidationRuleRow", rule);
      // CODE TO SET PartialView field prefix
      return view;
  }
  </code></pre>
  
  <p>The returned HTML doesn't have a prefix. Is there anyway to set a prefix when calling a PartialView from an Action in a Controller?</p>