ネットで入手できる情報を少し探してみましたが、まとめることはできませんでした。ログインページを利用するアプリケーションがあります。現在、ビューをどのモデルにもバインドしていません。ただし、2 つの入力 (ユーザー名とパスワード) があります。Asp.net Mvc に付属している jquery の目立たない検証機能を起動したいと考えています。サンプルは次のとおりです。
ログイン テンプレート (アンダースコア テンプレート エンジン) である Twitter ブートストラップを使用したバックボーン テンプレート。
@using (@Html.BeginForm("Login", "Home", FormMethod.Post, new { @class = "form-horizontal" }))
{
<div class="modal-body">
<div class="control-group">
<label class="control-label" for="inputEmail">Email</label>
<div class="controls">
@*<input type="text" id="inputEmail" placeholder="Email">*@
@Html.TextBox("Email", "", new { @placeholder = "Email" })
</div>
</div>
<div class="control-group">
<label class="control-label" for="inputPassword">Password</label>
<div class="controls">
<input type="password" id="inputPassword" placeholder="Password">
</div>
</div>
<div class="control-group">
@*<div class="controls">
<label class="checkbox">
<input type="checkbox"> Remember me
</label>
<button type="submit" class="btn">Sign in</button>
</div>*@
</div>
</div>
<div class="modal-footer">
@*<a class="btn" href="#" id="closeBtn">Close</a>*@ <button type="submit" class="btn btn-primary" >Login</button>
</div>
}
ログイン ビューの Coffeescript
require ['backbone','bootstrap','jqValUnobtrusive'],(Backbone) ->
class LoginView extends Backbone.View
el:$("#content")
initialize: ->
@render()
@validationOptions = @options.validationOptions
validationOptions:
rules:
'Email':
required:true
'user[password]':
required:true
close:->
console.log "hello"
render : ->
$(@el).find("#login").html _.template $("#loginTemplate").html()
App = new LoginView
そして、ブラウザからのJavaScriptがない場合にサーバー側のロジックを検証ルールに追加する私のコントローラー
[HttpPost]
[ValidateInput(true)]
public ActionResult Login(FormCollection Form)
{
ViewBag.Message = "Method posted";
if (Form["Email"] == string.Empty)
{
ModelState.AddModelError("Email", "Please Provide a Username");
ModelState.SetModelValue("Email", ValueProvider.GetValue("Email"));
}
return View();
}
誰かがこの問題に光を当てることができますか? エラーを表示するために、この jquery の目立たないコードで Twitter ブートストラップ検証メッセージを配置する方法は? または、jquery 控えめな検証プラグインを拡張して、twitter ブートストラップ/バックボーンと連携して検証を実行しますか?
私の基準は、ユーザー名とパスワードが NULL または空白であってはならないということです。モデル バインドなしでフォームを検証するための単純なケース (ログイン ページをどのモデルにもバインドしたくない)。むしろ、バックボーンと Twitter のブートストラップ スタイルを拡張して、jquery の控えめなプラグインを接続します。