50٪ تخفیف روی تمام دوره‌ها!
پایان تخفیف تا:
مشاهده دوره‌ها
0

مشکل در اجرای کد

سلام

یه برنامه تو Asp.net Mvc نوشتم که وزن و سرعت دو هواپیما رو با هم مقایسه کنه ولی هنگام اجرای کد به ارور برمیخورم

کنترلر برنامه به این صورت

public class HomeController : Controller
    {
        public int Speed;
        public int Weight;
        public int w1;
        public int s1;
        private int s2;
        private int w2;

        public void set1(int s, int w)
        {
            s = Speed;
            w = Weight;
        }

        public ActionResult Step1()
        {

            HomeController a1 = new HomeController();
            HomeController a2 = new HomeController();
            a1.set1(s1, w1);
            a1.set1(s2, w2);
            

            if (((a1.Speed) / (a1.Weight)) > ((a2.Speed) / (a2.Weight)))
            {
                ViewBag.Airport1 = "airport 1 is better!";
            }



            else if (((a1.Speed) / (a1.Weight)) == ((a2.Speed) / (a2.Weight)))

                ViewBag.Mosavi = "airport 1 == airport 2";
            else
                ViewBag.Airport2 = "airport 2 is better!";
            return View();
        }


    }

اینم کد ویوو

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Step1</title>
</head>
<body>
    <div> 
        @ViewBag.Airport1
        @ViewBag.Mosavi
        @ViewBag.Airport2
    </div>
</body>
</html>

یک صفحه صفحه Html هم است که مقادیر رو به صورت پست ارسال میکنه

ولی هنگام ارسال مقادیر این ارور دریافت میکنم :

سلام 
یه برنامه تو Asp.net Mvc نوشتم که وزن و سرعت دو هواپیما رو با هم مقایسه کنه ولی هنگام اجرای کد به ارور برمیخورم

کنترلر برنامه به این صورت 
<c#>
public class HomeController : Controller
    {
        public int Speed;
        public int Weight;
        public int w1;
        public int s1;
        private int s2;
        private int w2;

        public void set1(int s, int w)
        {
            s = Speed;
            w = Weight;
        }

        public ActionResult Step1()
        {

            HomeController a1 = new HomeController();
            HomeController a2 = new HomeController();
            a1.set1(s1, w1);
            a1.set1(s2, w2);
            

            if (((a1.Speed) / (a1.Weight)) > ((a2.Speed) / (a2.Weight)))
            {
                ViewBag.Airport1 = airport 1 is better!;
            }



            else if (((a1.Speed) / (a1.Weight)) == ((a2.Speed) / (a2.Weight)))

                ViewBag.Mosavi = airport 1 == airport 2;
            else
                ViewBag.Airport2 = airport 2 is better!;
            return View();
        }


    }
<c#>

اینم کد ویوو 
<c#>
<!DOCTYPE html>

<html>
<head>
    <meta name=viewport content=width=device-width />
    <title>Step1</title>
</head>
<body>
    <div> 
        @ViewBag.Airport1
        @ViewBag.Mosavi
        @ViewBag.Airport2
    </div>
</body>
</html>
<c#>

یک صفحه صفحه Html هم است که مقادیر رو به صورت پست ارسال میکنه 

ولی هنگام ارسال مقادیر این ارور دریافت میکنم : 

||https://tosinso.com/files/get/b19c7500-a604-4e02-bd67-a167a6f6b2ab||

ممنون میشم راهنمایی کنید

ممنون میشم راهنمایی کنید

پرسیده شده در 1396/10/16 توسط

7 پاسخ

0

سلام دوست عزيز

بهترين روش استفاده از Model هست . اگر نياز به توضيح هست بفرما تا تشريح كنم .

موفق باشي .

پاسخ در 1396/10/17 توسط
0

ممنون بابت نکته شما مهندس همین کارو هم کردم ولی همون خطای قبلی رخ میده به سوالات امتحاني علاقه ای ندارم :) ولی چه راه حل بهتری سراغ دارید ؟

این کد رو به چه صورتی میتوان نوشت که درست کار کنه ؟

پاسخ در 1396/10/17 توسط
0

خیر من اصلا تو فرم مقدار صفری وارد نکردم

خیر من اصلا تو فرم مقدار صفری وارد نکردم
||https://web.tosinso.com/files/get/06c44f14-2aec-4fb7-a727-c0df650fb480||

همین برنامه رو تو کنسول نوشتم درست کار میکنه 

فرم ارسال مقادیر
<c#>
<!DOCTYPE html>
<html>
<head>
    <meta charset=utf-8 />
    <title></title>
</head>
<body>
    <form action=Home/Step1/ method=post>
        <p>هواپیمای 1</p>
        سرعت :<input type=text name=s1 /><br />
        وزن :<input type=text name=w1 /><br />
        <p>هواپیمای 2</p>
        سرعت : <input type=text name=s2 /><br />
        وزن : <input type=text name=w2 />
        <input type=submit value=ارسال />
    </form>
</body>
</html>
<c#>

همین برنامه رو تو کنسول نوشتم درست کار میکنه

فرم ارسال مقادیر

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title></title>
</head>
<body>
    <form action="Home/Step1/" method="post">
        <p>هواپیمای 1</p>
        سرعت :<input type="text" name="s1" /><br />
        وزن :<input type="text" name="w1" /><br />
        <p>هواپیمای 2</p>
        سرعت : <input type="text" name="s2" /><br />
        وزن : <input type="text" name="w2" />
        <input type="submit" value="ارسال" />
    </form>
</body>
</html>
پاسخ در 1396/10/16 توسط
0

ممنون میشم همین کد رو به صورت مدل Model شرح دهید.

پاسخ در 1396/10/17 توسط
1

سلام عزيز دل برادر

 public void set1(int s, int w)
        {
            s = Speed;
            w = Weight;
        }

اينجا اشتباهه . چي رو داري تو چي ميريزي ؟؟!

Speed = s;
Weight = w;

بعدم چرا داري لقمه رو دو دور دوره كله ميپيچوني ؟! نكنه به سوالات امتحاني علاقه مندي ؟ ;)

پوزش به خاطر مزاح .

موفق باشي .

پاسخ در 1396/10/17 توسط
1

سلام دوست عزيز

1- ابتداي امر يك مدل به شكل زير ايجاد ميكنيم :

public class Compare
    {
        [Display(Name = "وزن هواپيماي اول")]
        public int WeightAir1 { get; set; }

        [Display(Name = "سرعت هواپيماي اول")]
        public int SpeedAir1 { get; set; }

        [Display(Name = "وزن هواپيماي دوم")]
        public int WeightAir2 { get; set; }

        [Display(Name = "سرعت هواپيماي دوم")]
        public int SpeedAir2 { get; set; }
    }

2- در مرحله دوم فرم ورود اطلاعات رو ميسازيم :

الف ) سمت كنترلر :

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

ب) سمت ويو

@model CompareTest.Models.Compare
@{
    ViewBag.Title = "Index";
}

<h2>مقايسه دو هواپيما</h2>


<div class="row">
    <div class="col-md-12">
        @using (Html.BeginForm())
        {
            @Html.AntiForgeryToken()
            <div class="form-horizontal">
                <div class="form-group">
                    @Html.LabelFor(model => model.WeightAir1)
                    @Html.EditorFor(model => model.WeightAir1)
                </div>
                <div class="form-group">
                    @Html.LabelFor(model => model.SpeedAir1)
                    @Html.EditorFor(model => model.SpeedAir1)
                </div>
                <div class="form-group">
                    @Html.LabelFor(model => model.WeightAir2)
                    @Html.EditorFor(model => model.WeightAir2)
                </div>
                <div class="form-group">
                    @Html.LabelFor(model => model.SpeedAir2)
                    @Html.EditorFor(model => model.SpeedAir2)
                </div>
            </div>

            <br />

            <button type="submit">ثبت</button>
        }

    </div>
</div>

3- در مرحله سوم اكشن مربوط به Post رو ميسازيم در همون كنترلر

 [HttpPost]
        public ActionResult Index(Compare compare)
        {
            if (ModelState.IsValid)
            {
                var resultStr = "";
                if (compare.SpeedAir1 / compare.WeightAir1 > compare.SpeedAir2 / compare.WeightAir2)
                    resultStr = "هواپيماي 1 بهتر از هواپيماي دوم هست";
                else
                if (compare.SpeedAir1 / compare.WeightAir1 < compare.SpeedAir2 / compare.WeightAir2)
                    resultStr = "هواپيماي دوم بهتر از هواپيماي اول هست";
                else
                    resultStr = "دو هواپيما خوب هستند.";

                return RedirectToAction("Result",new {result = resultStr});
            }

            return View();
        }

4- صفحه اعلام نتيجه (Result) رو ميسازيم :

الف) سمت كنترلر :

 public ActionResult Result(string result)
        {
            ViewBag.result = result;
            return View();
        }

ب) سمت ويو :


@{
    ViewBag.Title = "Result";
}

<h2>نتيجه</h2>

<div class="alert alert-danger">
    @ViewBag.result
</div>


هر جا ابهام داشتي بپرس .

موفق باشي .

پاسخ در 1396/10/18 توسط
1

سلام، وقت بخیر

پیام خطا مشخص هست، شما دارید یک عدد رو تقسیم بر صفر می کنید که این کار غیر مجاز هست، مقادیر a1.Weight یا a2.Weight رو بررسی کنید که یکیشون صفر هست.

پاسخ در 1396/10/16 توسط

پاسخ شما