値型、つまりintのMVC 2エディタテンプレートを作成したいのですが、プレビュー1ビットでこれを行った人はいますか?私はまだプレビュー1を試していないが、彼らはあなたがこのchannel9ビデオに求めているものをやった値型のASP.NET MVC 2エディタテンプレート、
感謝
値型、つまりintのMVC 2エディタテンプレートを作成したいのですが、プレビュー1ビットでこれを行った人はいますか?私はまだプレビュー1を試していないが、彼らはあなたがこのchannel9ビデオに求めているものをやった値型のASP.NET MVC 2エディタテンプレート、
感謝
:
彼らはDisplayForとEditorFor両方を行うには、約2分に開始します。値型の場合
--Edit--
すなわち、私はそれが同じように動作するように取得することができたint型。
私のビューに渡すモデルを作成します。新しいテンプレートのロジックを使用してモデルに
public class HomeController : Controller
{
public ActionResult Index()
{
HomeModel model = new HomeModel();
model.message = "Welcome to ASP.NET MVC!";
model.number = 526562262;
model.Date = DateTime.Now;
return View(model);
}
}
public class HomeModel
{
public string message { get; set; }
public int number { get; set; }
public DateTime Date { get; set; }
}
リンクビュー:
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<HomeModel>" %>
<asp:Content ID="indexContent" ContentPlaceHolderID="MainContent" runat="server">
<p>
<% Html.EditorFor(c => c.message); %>
</p>
<p>
<% Html.EditorFor(c => c.number); %>
</p>
<p>
<% Html.EditorFor(c => c.Date); %>
</p>
をその後のそれぞれのためのテンプレートを作成しますタイプINT32:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %>
Editor For My Int32: <%= Html.TextBox("abc", Model.ToString())%>
私はビューでこれを置く\共有\ EditorTemplates \ Int32.ascx
ウィルニック・クラークの答えの仕事?
MVC2プレビュー2では、Html.Textbox( "abc"、Model.ToString())を呼び出すと、 は名前に ".abc"というテキストを追加します。
<input id="StartDate_abc" name="StartDate.abc" type="text" value="02 Feb 09" />
これは、ポストバックしてUpdateModel()を実行しようとすると問題が発生します。
私は、DateTimeのためのエディタのテンプレート、私のために次のような作品をした:
/Views/Shared/EditorTemplates/DateTime.ascx:すべてのあなたのためのjQueryの日付ピッカーを使用する
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<DateTime>" %>
<%= Html.TextBox(String.Empty, Model.ToString("dd MMM yy")) %>
または、 DateTimes jQueryおよびjQueryUIへの参照を、MasterページまたはEditorForの呼び出しを含むビューに追加します。
/Views/Shared/EditorTemplates/DateTime.ascx:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<DateTime>" %>
<%= Html.TextBox("", Model.ToString("dd MMM yy")) %>
<script type="text/javascript">
$("#<%= ViewData.ModelMetadata.PropertyName %>").datepicker({ dateFormat: 'dd M y' });
</script>
更新:ASP。カミソリの構文を使用してNET MVC3、:
@model System.DateTime
@Html.TextBox("", Model.ToString("dd MMM yy"))
<script type="text/javascript">
$("#@ViewData.ModelMetadata.PropertyName").datepicker({ dateFormat: 'dd M y' });
</script>
そして、あなたはあなたのビューで必要なすべてがある、それを使用します
@Html.EditorFor(model => model.DueDate)
-Matt
私が行う方法についてa blog postを書きましたこれはMVC 2で再利用可能なテンプレートを作成することで実現します。
私の投稿ではTemplateInfo
とテンプレートの関係についても説明しています。
ビデオには、値タイプではなく参照タイプ(文字列)に基づいたエディタテンプレートの作成が示されます。 –
ディーン:私は自分の答えを改善しましたが、リリースノートに値の種類に関する既知の問題があることに気がつきました。それは上に私のために働くように見えたので、それが何に関連しているかはわかりません。 –
ありがとう、ニック、私は、ページの宣言で値の型を宣言していました。 Inherits = "System.Web.Mvc.ViewUserControl"これを削除すると、問題が解決します。あなたの助けをありがとう –