Hossis
چهارشنبه 04 خرداد 1401, 20:38 عصر
در asp.net core و mvc اصلا نمیشه به جز actionresualt ها، دستور دیگری رو اجرا کرد.
مثلا فرض کنید می خواهیم یک دکمه در ویو بسازیم که با کلیک بر روی آن، دستوری اجرا شود،
تنها دو راه داریم
1- استفاده از جاوا اسکریپت (در این صورت نمی تونیم به راحتی از دستورات سی شارپ و دات نت استفاده کنیم)
2- استفاده از فرم ها (که همواره یک اکشن را اجرا می کنند و مقداری رو برنمی گردونند و اگر برگردانند، صفحه رفرش می شود یا به صفحه دیگر می رود)
البته یه جایی دیدم با استفاده از ای جکس ، دستورات رو با جاوا به کنترلر و اکشن ها برمی گردونه ولی این هم کار رو سخت می کنه و هم امنیت رو پایین می یاره (نمایش کدها برای بازدید کننده و امکان تزریق کدهای جاوااسکریپت توسط هکر و...)
آیا راه حلی ساده برای اجرای تابع در یک ویو و برگرداندن مقدار آن تابع و نمایش مقدار برگشتی در ویو هست؟؟
اگر هست، با مثال توضیح دهید.
mozhde_
پنج شنبه 05 خرداد 1401, 00:58 صبح
عاشق اینم این مطالب رو یاد بگیرم اما فعلا یه شغل که یه سازنده معتبر منطقه 22 (https://fartak-company.com/%d8%aa%d8%b9%d8%a7%d9%88%d9%86%db%8c-%da%a9%d8%a7%d8%b4%d8%a7%d9%86%d9%87-%d8%b3%d8%a7%d8%b2%d9%87-%d9%81%d8%b1%d8%aa%d8%a7%da%a9/) گیرم اومده که اصلا نمیخوام از دستش بدم
Iran58
سه شنبه 17 خرداد 1401, 09:44 صبح
در asp.net core و mvc اصلا نمیشه به جز actionresualt ها، دستور دیگری رو اجرا کرد.
مثلا فرض کنید می خواهیم یک دکمه در ویو بسازیم که با کلیک بر روی آن، دستوری اجرا شود،
تنها دو راه داریم
1- استفاده از جاوا اسکریپت (در این صورت نمی تونیم به راحتی از دستورات سی شارپ و دات نت استفاده کنیم)
2- استفاده از فرم ها (که همواره یک اکشن را اجرا می کنند و مقداری رو برنمی گردونند و اگر برگردانند، صفحه رفرش می شود یا به صفحه دیگر می رود)
البته یه جایی دیدم با استفاده از ای جکس ، دستورات رو با جاوا به کنترلر و اکشن ها برمی گردونه ولی این هم کار رو سخت می کنه و هم امنیت رو پایین می یاره (نمایش کدها برای بازدید کننده و امکان تزریق کدهای جاوااسکریپت توسط هکر و...)
آیا راه حلی ساده برای اجرای تابع در یک ویو و برگرداندن مقدار آن تابع و نمایش مقدار برگشتی در ویو هست؟؟
اگر هست، با مثال توضیح دهید.
سلام
بنظمر اینطور که شما میفرمایید نیست
میشه کدی که دارید را قرار دهید
تابا دوستان چک کنیم
Hossis
پنج شنبه 19 خرداد 1401, 21:24 عصر
راه حلش رو خودم پیدا کردم
هم اجرای تابع در خود ویو و هم تامین امنیت
Hossis
پنج شنبه 19 خرداد 1401, 21:24 عصر
@page @using CallFuncInView.Users
@model IndexModel
@inject CallFuncInView.Users.UserService us;
@{
ViewData["Title"] = "Home page";
// var people = us.GetAllPeople();
string NewName;//=string.Empty;
}
<div class="text-center">
<h1 class="display-4">Welcome @FullName("علی","احمدی")</h1>
@* <h4> Hello @NewName</h4>*@
@* <ul> @foreach(var nam in Names()) { <li>@nam</li> } </ul>
*@
@*<form asp-action="FullName" method="get">
<button asp-route-f="حسین" asp-route-L="جعفری"
asp-route-outNm=@NewName type ="submit" value="کلیک کن" class="btn-success btn">Click</button>
</form>*@
@* <button asp-page-handler="FullName">Click</button>*@
<div class="col-md-6">
<table class="table table-stripped">
<tr>
<td> @Html.DisplayNameFor(m => m.people[0].FirstName)</td>
<td> @Html.DisplayNameFor(m => m.people[0].LastName)</td>
<td> @Html.DisplayNameFor(m => m.people[0].Mobile) </td>
</tr>
@foreach (Person p in Model.people ?? default!)
{
<tr>
<td>@p.FirstName</td>
<td>@p.LastName</td>
<td>@p.Mobile</td>
</tr>
}
</table>
<form method="post" id="MyForm">
<label for"FirstName">نام</label> <input type="text" name="FirstName" value="علی"/><br />
<label for"LastName">نام خانوادگی</label> <input type="text" name="LastName" value="قاسمی"/><br />
<label for"PhoneNumber">تلفن</label> <input type="text" name="PhoneNumber" value="9392256541"/><br />
<button onclick="PostHandler()" type="button">Post</button>
<button onclick="GetHandler()" type="button">Get</button>
<button onclick="PutHandler()" type="button">Put</button>
</form>
<div id="MyView"></div>
<span id="status" ></span>
<span id="ViewData"> @ViewData["data"] </span>
</div>
</div>
@section Scripts{
<script>
function PostHandler(event) {
// event.preventDefault();
$.ajax({
// method:"POST",
type: "Post",
//data:{"Mame":"حسین قادری"},
data: $("#MyForm").serialize(),
url: "?handler=Test",
success: function (data) {
$("#status").addClass("alert-success");
$("#status").html('با موفقیت انجام شد.');
$("#MyView").html(data);
}
,error:function(R){
$("#status").addClass("alert-danger");
$("#status").html('با شکست مواجه شد.\n'+ R);
}
}).done(function(d) {
// alert(d);
});
}
function GetHandler(event) {
// event.preventDefault();
$.ajax({
// method:"POST",
type: "Get",
//data:{"Mame":"حسین قادری"},
data: $("#MyForm").serialize(),
url: "?handler=Test",
success: function (data) {
$("#status").addClass("alert-success");
$("#status").html('با موفقیت انجام شد.');
$("#MyView").html(data);
}
,error:function(R){
$("#status").addClass("alert-danger");
$("#status").html('با شکست مواجه شد.\n'+ R);
}
}).done(function(d) {
// alert(d);
});
}
function PutHandler(event) {
// event.preventDefault();
$.ajax({
// method:"POST",
type: "Put",
// data:{"FirstName":"مسعود"},
data: $("#MyForm").serialize(),
url: "?handler=Test",
success: function (data) {
$("#status").addClass("alert-success");
$("#status").html('با موفقیت انجام شد.');
$("#MyView").html(data);
}
,error:function(R){
$("#status").addClass("alert-danger");
$("#status").html('با شکست مواجه شد.\n'+ R);
}
}).done(function(d) {
// alert(d);
});
}
</script>
}
@functions {
private string FullName(string fn = "حسین", string lastName = "سجادی")
{
return fn + ' ' + lastName;
}
private List<string> Names()
{
var s = new string[] { "محمد", "علی", "حسن", "یاسر", "سمیرا" };
return s.ToList<string>();
}
}
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.