問題に5日間費やしましたが、問題が見つかりません。 プロジェクトの送信データにK-MVCを使用しています。ここに簡単な例があります: 1) コントローラー
public class TechnologyController : KnockoutController
{
public ActionResult AddTechnology()
{
var model=new TechnologyViewModel();
return View(model);
}
[HttpPost]
public ActionResult AddTechnology(TechnologyViewModel viewModel)
{
if(ModelState.IsValid)
{
_serviceClient.AddTechnology(viewModel);
viewModel.SavedSaccessfully = true;
}
return Json(viewModel);
}
}
2) モデル
public class TechnologyViewModel
{
public int TechnologyId { get; set; }
[Required]
public string Name { get; set; }
public bool IsActual { get; set; }
public bool SavedSaccessfully { get; set; }
}
3) かみそり
@using PerpetuumSoft.Knockout
@model Core.ViewDataModel.TechnologyViewModel
@{
var ko = Html.CreateKnockoutContext();
ViewBag.Title = "New technology";
}
@using (ko.If(m => m.SavedSaccessfully))
{
@ko.Html.Span("NEW TECHNOLOGY SAVED TO DATABASE.")
}
@using (ko.If(m => m.SavedSaccessfully == false))
{
using (ko.Html.Form("AddTechnology", "Technology", ko.Model))
{
<p>@Html.Label("Name: ") @ko.Html.TextBox(m => m.Name).ValueUpdate(KnockoutValueUpdateKind.AfterKeyDown) </p>
<p>@Html.Label("Active : ") @ko.Html.CheckBox(m => m.IsActual).ValueUpdate(KnockoutValueUpdateKind.Change) </p>
</p>
<p>
<input class="submitButton" type="submit" value="Create" />
</p>
}
}
@ko.Apply(Model)
正常に動作しています。次に、有効なモデルがコントローラーで受信されず、送信されません。しかし、モデルが返送しても何も起こりません。検証メッセージは表示されません。私は標準のMVCのように入れようとしました:
using (ko.Html.Form("AddTechnology", "Technology", ko.Model))
{
Html.EnableClientValidation();
<p>@Html.Label("Name: ") @ko.Html.TextBox(m => m.Name, new{name="Name"}).ValueUpdate(KnockoutValueUpdateKind.AfterKeyDown) @Html.ValidationMessageFor(m=>m.Name) </p>
<p>@Html.Label("Active : ") @ko.Html.CheckBox(m => m.IsActual).ValueUpdate(KnockoutValueUpdateKind.Change) </p>
<p>
<input class="submitButton" type="submit" value="Create" />
</p>
}
しかし、うまくいきません。助けてください!SOS!---...---...---... :)