نمایش نتایج 1 تا 10 از 10

نام تاپیک: معادل !Page.IsPostBack در razor pages

  1. #1

    معادل !Page.IsPostBack در razor pages

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

    protected void Page_Load(object sender, EventArgs e)
    {
    if (!Page.IsPostBack)
    {
    showinfo();
    }
    }
    در Razor pages چی هستش چیزی روی اینترنت جز if (!ModelState.IsValid) پیدا نکردم که این هم به کارم نیامد من اطلاعات از دیتابیس میخونم و نمایش میدم ولی وقتی اطلاعات رو وارد میکنم و یا انتخاب میکنم نمیخوام آیتم B از لیت انتخاب میکنم وقتی رفرش کردم بره سراغ آیتم A یعنی وقتی رفرش شد دیگه برای نمایش اطلاعات نره دیتابیس همون اول که رفته بسته برای بار دوم دیگه نره باید چی کاری انجام بدم ممنون میشم بنده راهنمایی کنید با تشکر

  2. #2
    بنیان گذار Barnamenevis آواتار مهدی کرامتی
    تاریخ عضویت
    اسفند 1381
    محل زندگی
    کرج، گلشهر
    سن
    46
    پست
    6,379

    نقل قول: معادل !Page.IsPostBack در razor pages

    1- جسارتا خودتون متنی که نوشتید رو چند بار بخوانید ببینید متوجه می شوید منظور خودتون چیه؟!

    2- معادلی برای IsPostBack در Razor و MVC وجود نداره، چون کلا مکانیسم PostBack در MVC وجود نداره.

  3. #3

    نقل قول: معادل !Page.IsPostBack در razor pages

    پس این طوری تو هر فرم لود در Razor تمام کوئری های از دیتابیس صدا زده شده همه شون راه به راه صدا زده میشه

  4. #4

    نقل قول: معادل !Page.IsPostBack در razor pages

    باید توجه کنید که Razor Page در واقع از الگوی MVC استفاده میکنه و اصلا هیچ ارتباطی با Web Form و مباحثی مثل PostBack نداره.
    فکر میکنم مشکل شما در واقع انتخاب لیست های دوتایی مثل استان و شهرستان هست به این معنی که وقتی یکی عوض شد دومی هم آپدیت بشه.
    اینکارها رو باید با جاوا اسکریپت و ajax انجام بدید که روش اصولی و درست اون هست.
    البته به زودی با استفاده از Blazor هم میشه چنین مکانیزمهایی رو انجام داد.

  5. #5

    نقل قول: معادل !Page.IsPostBack در razor pages

    دوست عزیز شما از Attribute زیر قبل از متدتون استفاده بکنید که بعد از رفرش شدن view مجدد عملیات submit انجام نشه:

    [ResponseCache(Duration = 0, NoStore = true)]


    البته لازم به ذکر که شما از دو متد get و post باید توی کنترلر استفاده بکنید ، یکی برای نمایش view و دیگری برای انجام عملیات (submit)...
    آخرین ویرایش به وسیله soroush10 : چهارشنبه 24 بهمن 1397 در 22:37 عصر دلیل: تکمیل

  6. #6

    نقل قول: معادل !Page.IsPostBack در razor pages

    سلام و تشکر دوست عزیز بابت جواب به بنده .
    بنده از دیتابیس برای نمایش جنسیت و همچنین و نام کشور ها استفاده میکنم. به صورت تصویر زیر
    2019-04-02_19-01-04.jpg
    مشاهده میکنید جنسیت و نام کشور نمایان شده ولی وقتی روی دکمه ثبت کلیک میکنم به کل جنسیت و کشور خالی میشه یعنی از دیتابیس فراخونی نمیشه.
    2019-04-02_19-03-36.jpg
    که از دستورات زیر برای نمایش استفاده میکنم.


    [ResponseCache(Duration = 0, NoStore = true)]
    public void OnGet()
    {
    var sex = tblSex.Select().Select(s => new SelectListItem
    {
    Value = s.S_ID.ToString(),
    Text = s.S_Title
    }).ToList();
    ViewData["sex"] = sex;
    ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


    var Country = tbkCountries.List_Countries().Select(s => new SelectListItem
    {
    Value = s.C_ID.ToString(),
    Text = s.C_Titles
    }).ToList();
    ViewData["Country"] = Country;
    ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    }

    مقدار دستوری که داخل دیزان استفاده کردم.

    <div class="form-group row" ng-class="{'has-error' : Registers.C_Titles.$touched && Registers.C_Titles.$invalid}">
    <label asp-for="Countries.C_Titles" class="col-md-4 col-form-label text-md-right"></label>
    <div class="col-md-8">
    <select asp-for="Countries" class="form-control" asp-items="@((List<SelectListItem>)ViewData["Country"])"></select>
    <span class=" text-danger" ng-show="Registers.C_Titles.$touched && Registers.C_Titles.$invalid">لطفاً کشور را انتخاب فرمائید</span>
    </div>
    </div>

    از این دستورات استفاده کردم بار اول درست نشان میده ولی وقتی روی دکمه میخوره همه چیز میپره یا صفحه رفرش میشه من ایران انتخاب کنم میره روی کشور افغانستان یا خانم انتخاب کنم میره روی آقا جنسیت میخوام هم اطلاعات خالی نشه و هم دستورات وقتی روی دکمه زدم به حالت اول باز نگرده
    و یک سوال دیگه چطور میتوانم داخل هر دکمه مربوط به اون دکمه یک رویداد بگم وقتی روی دکمه کلیک کرد بررسی کنه کد ملی اگه طرف ایرانی بود ببینه کد ملی درست یا نه یعنی پیغام بده و دیگه دستورات ادامه نده و اگه ایران نبود مشکل نیست شماره پاسپورتش بده
    درست مانند این دستور


    pnl_error.Visible = false;
    StringBuilder messages = new StringBuilder();
    bool isValid = true;
    /////////////////////////////////////////////////////////////////////////////////////
    if (Txt_R_Name.Text == "")
    {
    messages.Append(msg.Empty("نام"));
    isValid = false;
    }
    /////////////////////////////////////////////////////////////////////////////////////
    if (Txt_R_Last.Text == "")
    {
    messages.Append(msg.Empty("نام خانوادگی"));
    isValid = false;
    }
    /////////////////////////////////////////////////////////////////////////////////////
    if (Txt_R_Father.Text == "")
    {
    messages.Append(msg.Empty("نام پدر"));
    isValid = false;
    }

    if (!isValid)
    {
    pnl_error.Visible = true;
    ErrorMessage.Text = messages.ToString();
    return;
    }


    روشی هستش جز نمایش مانند آنگولار بعضی از دستورات شرطی مانند بررسی تاریخ تولد که انجام میدم و غیره رو به این صورت بررسی و پیغامی به صفحه اصلی بفرستم برای درست کردن اطلاعات چون قبل از ثبت آپلود تصویر هم دارم.
    و همین طور بنده دستورات بررسی تاریخ تولد، کد ملی بررسی سن و بعضی دستورات که دارم باید سمت سی شارپ و به کلاینت پیغام بدم.

  7. #7

    نقل قول: معادل !Page.IsPostBack در razor pages

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

    <div class="form-group row" ng-class="{'has-error' : Registers.S_Title.$touched && Registers.S_Title.$invalid}">
    <label asp-for="sex.S_Title" class="col-md-4 col-form-label text-md-right"></label>
    <div class="col-md-8">
    @{
    Tbl_Sex tblSex = new Tbl_Sex();
    System.Collections.Generic.List<SelectListItem> sex = tblSex.Select().Select(s => new SelectListItem
    {
    Value = s.S_ID.ToString(),
    Text = s.S_Title
    }).ToList();
    ViewData["sex"] = sex;
    <select asp-for="sex" class="form-control" asp-items="@((List<SelectListItem>) ViewData["sex"])"></select>
    @*<select name=”sex” id="Sex" class="form-control">
    @foreach (var item in Model.Sexs)
    {
    <option value="@Html.DisplayFor(modelItem => item.Value)">@Html.DisplayFor(modelItem => item.Text) </option>
    }
    </select>*@
    <span class=" text-danger" ng-show="Registers.S_Title.$touched && Registers.S_Title.$invalid">لطفاً جنسیت را انتخاب فرمائید</span>
    }
    </div>
    </div>

    که دستور اصلی سی شارپ داخل محیط دیزان استفاده کردم که این هستش.

    Tbl_Sex tblSex = new Tbl_Sex();
    System.Collections.Generic.List<SelectListItem> sex = tblSex.Select().Select(s => new SelectListItem
    {
    Value = s.S_ID.ToString(),
    Text = s.S_Title
    }).ToList();
    ViewData["sex"] = sex;
    <select asp-for="sex" class="form-control" asp-items="@((List<SelectListItem>) ViewData["sex"])"></select>

    بنده از این دستور استفاده کردم ولی وقتی روی دکمه Submit کلیک میکنم کادر متن ها خالی میشن و دوم نسیت پیش فرض آقای مزارم روی خانم دوباره میشه آقا کشور میزارم ایران و پیش فرض افغانستان دوباره بر میگرده به حالت اول یعنی افغانستان و همین طور کادر متن ها رو خالی میکنه نمیخوام وقتی روی دکمه کلیک شد مقدارش خالی بیشه چیکار باید انجام بیدم

  8. #8

    نقل قول: معادل !Page.IsPostBack در razor pages

    دوستان بنده مشکل مربوط به پریدن اطلاعات بعد کلیک روی دکمه submit که عمل رفرش انجام میشود و این عمل رفرش باعث پریدن اطلاعات میشد رو متوجه شددم مقدار action در Form باعث میشود صفحه رفرش و اطلاعات بپرد که بنده مقدار Action برداشتم درست شد و باعث شد اطلاعات نپره. ولی وقتی آنگولار که از سایت https://cdnjs.com/libraries/angular.js/ فایل آنگولار دانلود و به پروژه اضافه کردم باعث شد در method="POST" عمل رفرش دیگه کامل صورت نگیره یعنی قبل از آنگولار مقدار method="Post" وقتی روی دکمه میخورد به سمت سرور میره دستور و برمیگرده و هیچ اطلاعاتی نمپره و همه ثابت هستش ولی وقتی آنگولار میاد دیگه دستورسی سمت سرور نمیره.
    دستور بنده بدون آنگولار درست کار میکنه اطلاعاتی نمیپره ولی با آنگولار دیگه سمت سرور نمیره و نمیدانم چیکار کنم این موضوع و آنگولار هم با فیلم آموزشی کم یاد گرفتم و کامل بلد نیستم.
    این دستور تگ نویسی بنده در Razor Pages هستش.

    <main class="login-form">
    <div class="cotainer" ng-controller="MainCtrl">
    <div class="row justify-content-center">
    <div class="col-md-5">
    <div class="card">
    <div class="card-header">ورود</div>
    <div class="card-body">
    <form method="post" novalidate name="Login">
    <div class="form-group row" ng-class="{'has-error' : Login.U_Username.$touched && Login.U_Username.$invalid}">
    <label asp-for="users.U_Username" class="col-md-4 col-form-label text-md-right"></label>
    <div class="col-md-8">
    <input type="text" asp-for="users.U_Username" id="U_Username" class="form-control" name="U_Username" ng-model="users.U_Username" maxlength="50" ng-required="true" autofocus>
    <span class=" text-danger" ng-show="Login.U_Username.$touched && Login.U_Username.$invalid">لطفاً نام کاربری را وارد فرمائید</span>
    </div>
    </div>


    <div class="form-group row" ng-class="{'has-error' : Login.U_Password.$touched && Login.U_Password.$invalid}">
    <label asp-for="users.U_Password" class="col-md-4 col-form-label text-md-right"></label>
    <div class="col-md-8">
    <input type="password" asp-for="users.U_Password" id="U_Password" class="form-control" name="U_Password" ng-model="users.U_Password" maxlength="50" ng-required="true" autofocus>
    <span class=" text-danger" ng-show="Login.U_Password.$touched && Login.U_Password.$invalid">لطفاً رمز عبور را وارد فرمائید</span>
    </div>
    </div>
    <div class="col-md-12 offset-md-1">
    <input type="submit" name="Btn_Loggin" id="Btn_Loggin" value="ورود" class="btn btn-primary" @*ng-disabled="Login.$invalid"*@ />
    <a href="#" class="btn btn-link">
    بازیابی رمز عبور
    </a>
    </div>
    </form>
    </div>
    </div>
    </div>
    </div>
    </div>
    </main>

  9. #9

    نقل قول: معادل !Page.IsPostBack در razor pages

    دوستان بلخره بنده تونستم هم ذخیره رو انجام بدم بدون رفرش یعنی هم آنگولار رو دارم استفاده میکنم و هم دارم دستور مربوط ذخیره رو به صورت خیلی ساده پیش بردم.
    و هم وقتی اطلاعات ثبت میکنم اطلاعات از بین نمیره از فرم و ثابت هستش اطلاعات.
    دستورات سمت کلاینت با مقدار دستور Ajax

    <div id="Result"></div>
    <form method="post" name="Registers" data-ajax="true" data-ajax-method="post" data-ajax-complete="Insert">
    @Html.AntiForgeryToken()
    <section id="tabs" class="project-tab">
    <div class="container" ng-controller="MainCtrl">
    <div class="row">


    <div class="col-md-12">
    <nav>
    <div class="nav nav-tabs nav-fill" id="nav-tab" role="tablist">
    <a class="nav-item nav-link active" id="nav-Info-tab" data-toggle="tab" href="#nav-Info" role="tab" aria-controls="nav-Info" aria-selected="true">مشخصات فردی</a>
    <a class="nav-item nav-link" id="nav-Connect-tab" data-toggle="tab" href="#nav-Connect" role="tab" aria-controls="nav-Connect" aria-selected="false">ارتباط</a>
    <a class="nav-item nav-link" id="nav-Address-tab" data-toggle="tab" href="#nav-Address" role="tab" aria-controls="nav-Address" aria-selected="false">نشانی</a>
    <a class="nav-item nav-link" id="nav-ActiveJob-tab" data-toggle="tab" href="#nav-ActiveJob" role="tab" aria-controls="nav-ActiveJob" aria-selected="false">فعالیت شغلی</a>
    <a class="nav-item nav-link" id="nav-Upload-tab" data-toggle="tab" href="#nav-Upload" role="tab" aria-controls="nav-Upload" aria-selected="false">آپلود</a>
    </div>
    </nav>
    <div class="tab-content" id="nav-tabContent">
    <div class="tab-pane fade show active" id="nav-Info" role="tabpanel" aria-labelledby="nav-Info-tab">
    <!------------------------------------------------------------------------------------------------------------------->
    <div class="row justify-content-center">
    <div class="col-md-6">
    <div class="card border-0">
    <div class="card-body">
    <!------------------------------------------------------------------------------------------------------------------->
    <div class="form-group row" ng-class="{'has-error' : Registers.S_Title.$touched && Registers.S_Title.$invalid}">
    <label asp-for="sex.S_Title" class="col-md-4 col-form-label text-md-right"></label>
    <div class="col-md-8">
    @{
    Tbl_Sex tblSex = new Tbl_Sex();
    System.Collections.Generic.List<SelectListItem> sex = tblSex.Select().Select(s => new SelectListItem
    {
    Value = s.S_ID.ToString(),
    Text = s.S_Title
    }).ToList();
    ViewData["sex"] = sex;
    <select asp-for="sex" class="form-control" asp-items="@((List<SelectListItem>) ViewData["sex"])"></select>
    @*<select name=”sex” id="Sex" class="form-control">
    @foreach (var item in Model.Sexs)
    {
    <option value="@Html.DisplayFor(modelItem => item.Value)">@Html.DisplayFor(modelItem => item.Text) </option>
    }
    </select>*@
    <span class=" text-danger" ng-show="Registers.S_Title.$touched && Registers.S_Title.$invalid">لطفاً جنسیت را انتخاب فرمائید</span>
    }
    </div>
    </div>
    <!------------------------------------------------------------------------------------------------------------------->
    <div class="form-group row" ng-class="{'has-error' : Registers.R_Name.$touched && Registers.R_Name.$invalid}">
    <label asp-for="RegisterSelect.R_Name" class="col-md-4 col-form-label text-md-right"></label>
    <div class="col-md-8">
    <input type="text" asp-for="RegisterSelect.R_Name" id="R_Name" class="form-control" onkeypress="return checkChar(event, 4);" name="R_Name" ng-model="RegisterSelect.R_Name" maxlength="50" ng-required="true" autofocus>
    <span class=" text-danger" ng-show="Registers.R_Name.$touched && Registers.R_Name.$invalid">لطفاً نام را وارد فرمائید</span>
    </div>
    </div>
    <!------------------------------------------------------------------------------------------------------------------->
    <div class="form-group row" ng-class="{'has-error' : Registers.R_Last.$touched && Registers.R_Last.$invalid}">
    <label asp-for="RegisterSelect.R_Last" class="col-md-4 col-form-label text-md-right"></label>
    <div class="col-md-8">
    <input type="text" asp-for="RegisterSelect.R_Last" id="R_Last" class="form-control" onkeypress="return checkChar(event, 4);" name="R_Last" ng-model="RegisterSelect.R_Last" maxlength="50" ng-required="true" autofocus>
    <span class=" text-danger" ng-show="Registers.R_Last.$touched && Registers.R_Last.$invalid">لطفاً نام خانوادگی را وارد فرمائید</span>
    </div>
    </div>
    <!------------------------------------------------------------------------------------------------------------------->
    <div class="form-group row" ng-class="{'has-error' : Registers.R_Father.$touched && Registers.R_Father.$invalid}">
    <label asp-for="RegisterSelect.R_Father" class="col-md-4 col-form-label text-md-right"></label>
    <div class="col-md-8">
    <input type="text" asp-for="RegisterSelect.R_Father" id="R_Father" class="form-control" onkeypress="return checkChar(event, 4);" name="R_Father" ng-model="RegisterSelect.R_Father" maxlength="50" ng-required="true" autofocus>
    <span class=" text-danger" ng-show="Registers.R_Father.$touched && Registers.R_Father.$invalid">لطفاً نام پدر را وارد فرمائید</span>
    </div>
    </div>
    <!------------------------------------------------------------------------------------------------------------------->
    <div class="form-group row" ng-class="{'has-error' : Registers.C_Titles.$touched && Registers.C_Titles.$invalid}">
    <label asp-for="Countries.C_Titles" class="col-md-4 col-form-label text-md-right"></label>
    <div class="col-md-8">
    @{
    Tbl_Countries tblCountries = new Tbl_Countries();
    System.Collections.Generic.List<SelectListItem> Country = tblCountries.List_Countries().Select(s => new SelectListItem
    {
    Value = s.C_ID.ToString(),
    Text = s.C_Titles


    }).ToList();
    ViewData["Country"] = Country;
    <select asp-for="Countries" dir="ltr" class="form-control" asp-items="@((List<SelectListItem>) ViewData["Country"])"></select>
    @*<select name=”C_Titles” id="C_Titles" class="form-control" dir="ltr">
    @foreach (var item in Model.cntry)
    {
    <option value="@Html.DisplayFor(modelItem => item.Value)" data-thumbnail="../flags/aland_islands.gif" >
    @Html.DisplayFor(modelItem => item.Text) </option>
    }
    </select>*@
    <span class=" text-danger" ng-show="Registers.C_Titles.$touched && Registers.C_Titles.$invalid">لطفاً کشور را انتخاب فرمائید</span>
    }
    </div>
    </div>
    <!------------------------------------------------------------------------------------------------------------------->
    <div class="form-group row" ng-class="{'has-error' : Registers.R_National_Code_Or_Passports.$touched && Registers.R_National_Code_Or_Passports.$invalid}">
    <label asp-for="RegisterSelect.R_National_Code_Or_Passports" class="col-md-4 col-form-label text-md-right"></label>
    <div class="col-md-8">
    <input type="text" asp-for="RegisterSelect.R_National_Code_Or_Passports" id="R_National_Code_Or_Passports" class="form-control" onkeypress="return checkChar(event, 1);" name="R_National_Code_Or_Passports" ng-model="RegisterSelect.R_National_Code_Or_Passports " maxlength="10" ng-required="true" autofocus>
    <span class=" text-danger" ng-show="Registers.R_National_Code_Or_Passports.$touc hed && Registers.R_National_Code_Or_Passports.$invalid"> طفاً کد ملی را وارد فرمائید</span>
    </div>
    </div>
    <!------------------------------------------------------------------------------------------------------------------->
    </div>
    </div>
    </div>
    </div>
    </div>
    <!------------------------------------------------------------------------------------------------------------------->
    <div class="tab-pane fade" id="nav-Connect" role="tabpanel" aria-labelledby="nav-Connect-tab">
    <!------------------------------------------------------------------------------------------------------------------->
    </div>
    <!------------------------------------------------------------------------------------------------------------------->
    <div class="tab-pane fade" id="nav-Address" role="tabpanel" aria-labelledby="nav-Address-tab">
    <!------------------------------------------------------------------------------------------------------------------->




    </div>


    <div class="tab-pane fade" id="nav-ActiveJob" role="tabpanel" aria-labelledby="nav-ActiveJob-tab">


    </div>


    <div class="tab-pane fade" id="nav-Upload" role="tabpanel" aria-labelledby="nav-Upload-tab">
    <!------------------------------------------------------------------------------------------------------------------->
    <div class="row justify-content-center">
    <div class="col-md-6">
    <div class="card border-0">
    <div class="card-body">
    <!------------------------------------------------------------------------------------------------------------------->
    <div class="form-group row" ng-class="{'has-error' : Registers.S_Title.$touched && Registers.S_Title.$invalid}">
    <input type="submit" name="Btn_OK" id="Btn_OK" value="ثبت" class="btn btn-success" @*ng-disabled="Login.$invalid"*@ />

    </div>
    <!------------------------------------------------------------------------------------------------------------------->
    </div>
    </div>
    </div>
    </div>
    <!------------------------------------------------------------------------------------------------------------------->
    </div>
    </div>
    </div>
    </div>
    </div>
    </section>
    </form>


    @section scripts{
    <script>
    $(function () {
    $('#Btn_OK').on('click', function (evt) {
    evt.preventDefault();
    $.post('', $('form').serialize(), function () {
    $('#Result').html("ثبت با موفقعیت صورت گرفت");
    });
    });
    });
    </script>
    }




    مقدار دستور سمت سرور.

    [HttpPost]
    public void OnPost()
    {
    hlp.Error(1, 1, 1, this.RegisterSelect.R_Name);
    }

  10. #10
    کاربر تازه وارد
    تاریخ عضویت
    اسفند 1392
    محل زندگی
    دنیایی به نام برنامه نویسی
    پست
    99

    نقل قول: معادل !Page.IsPostBack در razor pages

    سلام. توصیه میکنم حتما روی نگارش خود کار کنید

تاپیک های مشابه

  1. مشکل در ناقص Publish کردن Asp Core Razor Pages
    نوشته شده توسط davidrobert در بخش ASP.NET Core
    پاسخ: 2
    آخرین پست: دوشنبه 15 بهمن 1397, 13:15 عصر
  2. نگاهی به Razor Pages در ASP Core
    نوشته شده توسط hakim22 در بخش ASP.NET MVC
    پاسخ: 7
    آخرین پست: چهارشنبه 10 بهمن 1397, 22:26 عصر
  3. نمایش متن راست به چپ در Asp core razor pages
    نوشته شده توسط davidrobert در بخش ASP.NET Core
    پاسخ: 5
    آخرین پست: سه شنبه 02 بهمن 1397, 21:14 عصر
  4. سوال: Page.IsPostBack! چرا برابر فالس است؟
    نوشته شده توسط sepehrforough در بخش ASP.NET Web Forms
    پاسخ: 1
    آخرین پست: یک شنبه 07 اردیبهشت 1393, 00:29 صبح
  5. سوال: تفاوت page.valid و page.ispostback
    نوشته شده توسط sepehrforough در بخش ASP.NET Web Forms
    پاسخ: 2
    آخرین پست: دوشنبه 01 اردیبهشت 1393, 00:47 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •