ورود

View Full Version : سوال درباره برنامه جمع دو عدد



negar442
چهارشنبه 28 آذر 1397, 14:04 عصر
من یک برنامه نوشتم که توش قراره دو عدد دریافت بشه از تکست باکس و مجموع در تکست باکس سوم نشون داده بشه، اگه از @Html.DisplayFor استفاده کنم خروجی به درستی نشون داده میشه ولی اگه از Html.TextBox استفاده کنم نتیجه در تکست باکس نشون داده نمیشه! کدهام اینجوری ان:
model :

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Web;


namespace MvcSumTest.Models
{
public class mAdditionViewModel
{

public int A { get; set; }

public int B { get; set; }
public int Result { get; set; }
}
}



controller:


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using MvcSumTest. Models;


namespace MvcSumTest.Controllers
{
public class sumController : Controller
{
//
// GET: /sum/


public ActionResult Index()
{
return View();
}

public ActionResult Addition( mAdditionViewModel pModel)
{
pModel.Result = pModel.A + pModel.B;
return View(pModel);
}


}
}






view:



@model MvcSumTest.Models.mAdditionViewModel


@{
ViewBag.Title = "Addition";
}


<h2>Addition</h2>




@using (Html.BeginForm("Addition", "sum", FormMethod.Post))
{


@Html.TextBox("A")
@Html.TextBox("B")
@Html.TextBox("Result")
// @Html.DisplayFor(x => x.Result)



<input type="submit" value="Submit" />
}

مهدی کرامتی
چهارشنبه 28 آذر 1397, 22:18 عصر
@Html.TextBoxFor(x => x.A)
@Html.TextBoxFor(x => x.B)
@Html.TextBoxFor(x => x.Result)

negar442
چهارشنبه 28 آذر 1397, 22:41 عصر
@Html.TextBoxFor(x => x.A)
@Html.TextBoxFor(x => x.B)
@Html.TextBoxFor(x => x.Result)

اینو هم امتحان کردم ولی نشد. رو تکست باکس سوم باز هم 0 نشون داده میشه

a.golzar66
پنج شنبه 29 آذر 1397, 09:17 صبح
میتونید تو کنترلر مقدار result را تو viewbag.result بریزید و در ویو هم مقدار viewbag را نمایش بدید

ViewBag.result = pModel.A + pModel.B;


<input type="text" name="Result" value="@ViewBag.result"/>

negar442
پنج شنبه 29 آذر 1397, 12:00 عصر
میتونید تو کنترلر مقدار result را تو viewbag.result بریزید و در ویو هم مقدار viewbag را نمایش بدید

ViewBag.result = pModel.A + pModel.B;


<input type="text" name="Result" value="@ViewBag.result"/>

ممنون. با این درست شد.
حالا اگه بخوام بعد هر کلیک روی باتن مقدار همه تکست باکسها با 3 جمع بشه ، اونوقت باید چی کار کنم؟

a.golzar66
شنبه 01 دی 1397, 09:19 صبح
خواهش
متوجه منظور سوالتون نشدم خب هر تکس باکسی که میخوایید رو تو کنترلر با 3 جمع کنید و مقدارش رو بریزید تو viewbag.result و در ویو نمایش بدید

negar442
شنبه 01 دی 1397, 09:44 صبح
فرض کنید یک تکست باکس داریم و یک دکمه؛ میخوام به ازای هر کلیک عدد داخل تکست باکس با 3 جمع بشه و در همون تکست باکس نشون بده.
این روشی که شما گفتیئد نمیشه چون تکست باکس مقدار قبلی داره و باید به علاوه 3 بشه.

مهدی کرامتی
شنبه 01 دی 1397, 11:10 صبح
این کارها می خواهید الزاما توسط یک اکشن در کنترلر انجام بشه و یا اگر با jQuery هم قابل انجام باشه مشکلی ندارید؟

negar442
شنبه 01 دی 1397, 11:56 صبح
با جاوا اسکریپت که خودم می تونم.
آیا بدون جاوا اسکریپت میشه؟