私はモデルから足場をつけたビューを持っています。私は、 "editfor"ヘルパータグから値を取得し、一連の計算を行い、次に結果(複数)をビューに戻す必要があります。私は明確にするために小さな例を作成しました。フォームの内容をコントローラに渡し、計算してから複数の結果を返す
この足場を作成public class OpticalcTestViewModel
{
public double OD_Sphere { get; set; }
public double OD_Cylinder { get; set; }
public int Axis { get; set; }
}
:
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<div class="form-horizontal">
<h4>OpticalcTestViewModel</h4>
<hr />
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
<div class="form-group">
@Html.LabelFor(model => model.OD_Sphere, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.OD_Sphere, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.OD_Sphere, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.OD_Cylinder, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.OD_Cylinder, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.OD_Cylinder, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.Axis, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.Axis, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.Axis, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Create" class="btn btn-default" />
</div>
</div>
</div>
}
<div>
@Html.ActionLink("Back to List", "Index")
</div>
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}
これは私のコントローラである:
public class OpticalcTestController : Controller
{
// GET: OpticalcTest
public ActionResult Index()
{
return View();
}
}
私は "editfor" ボックスから値を取得するか、それらに計算を実行する方法、それらの計算の結果を渡します(1つではなく、複数の結果)をビューのいくつかのラベルに戻しますか?
これは私が通常使用するwinformsのような簡単なことですが、私はこれに対する答えを見つけようとしています。私が検索から得た他の9,000の結果は、常に(全モデルとして)データをデータベースに書き込むことに関するものです。これにはデータベースはありません。それは、数値をとり、計算を行い、結果を吐き出すフォームです。
具体的には、これらの値をどのようにコントローラに追加し、円に球を追加し、次に円柱を軸に追加し、両方の結果を別々にラベル(またはそれらを表示する他の方法)に戻しますか?あなたが気付いたよう
[HttpPost]
public ActionResult Index(OpticalcTestViewModel model)
{
//perform calculations
return View(model);
}
:あなたがする必要がある R
JavaScriptで数学的計算を行うことは完全に実行可能であることに注意してください。計算を実行するために値をサーバーに戻す必要はありません。もちろん、それらをサーバーに置くための特定の理由(競合他社からの計算を隠すなど)がある場合を除きます。 – NightOwl888
私はそれについて考えましたが、多くの計算が必要になり、デバッグやテストケースの作成が必要になります。 – rmnrdi
サーバー上でこれを行う必要がある場合は、パフォーマンスを向上させるために、値をポストし、返された値でDOMを更新するためにajaxを使用することを検討する必要があります。 –