ورود

View Full Version : مشکل در استفاده از پارشال ویو و ارسالاطلاعات به یک اکشن



RIG000
پنج شنبه 13 آذر 1393, 02:08 صبح
سلام من یه پارشیال ویو دارم که اینجوریه .... همون جدول کامنت هست

@model EshopFull.Models.Comments

@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/jqueryval")




@using (Html.BeginForm())
{
@Html.AntiForgeryToken()

<div class="form-horizontal">
@Html.ValidationSummary(true)


@*<div class="form-group">
@Html.LabelFor(model => model.UserId, new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownList("UserId", String.Empty)
@Html.ValidationMessageFor(model => model.UserId)
</div>
</div>*@


<div class="form-group">
@Html.LabelFor(model => model.Comments1, new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.Comments1)
@Html.ValidationMessageFor(model => model.Comments1)
</div>
</div>


<div class="form-group" id="buttons">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="ایجاد" class="btn btn-primary" />
@Html.ActionLink("بازگشت به فهرست", "Index", null, new { @class = "btn btn-danger" })
</div>
</div>
</div>
}




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

@Html.Partial("~/Views/First/_Comment.cshtml",new Comments())

و یک اکشن

public PartialViewResult _Comment(Comments Com) {
var query = (from findbyname in db.Users
where findbyname.Email == User.Identity.Name
select findbyname.UserID).FirstOrDefault();
Comments comment = new Comments()
{
UserId = 12,
Comments1 = Com.Comments1
};
db.Comments.Add(comment);
db.SaveChanges();
return null;
}
... و حالا قرار هست که ما یکسری اطلاعات رو برای درج بفرستیم به این اکشن اما مشکل اینه که وقتی روی submit میزنم اطلاعات به اکشن نمیرسه و اینجوری تو نوار ادرس ظاهر میشه...

http://localhost:1127/First/Index?__RequestVerificationToken=etIyXoD9SWQXtEzrS z1KF0VyrqLlCkmSOuE9SFFdKWz9S-f3Xo73QkTttV6_LnRBeo-Ou8gTbgpmws2YPBO0k1aH3X2hKSHUj07HHq70k_U1&Comments1=21

مهدی کرامتی
پنج شنبه 13 آذر 1393, 02:32 صبح
راستش از کدهایی که گذاشتی چیزی معلوم نیست. یک پروژه MVC درست کن که فقط همین موارد توش باشه. Zip اش کن و اینجا ضمیمه کن تا بررسی شه.

hakim22
پنج شنبه 13 آذر 1393, 08:30 صبح
1- در چون از پارشیال استفاده می کنید باید آدرس فرم رو در BeginForm قرار بدید در غیر این صورت مسیر ارسال اطلاعات رو پیدا نمیکنه.

2- لینک آموزش ثبت نظر (http://barnamenevis.org/showthread.php?416558-%D8%A2%D8%B4%D9%86%D8%A7%DB%8C%DB%8C-%D8%A8%D8%A7-Ajax-%D8%AF%D8%B1-ASP-MVC-%D8%B3%DB%8C%D8%B3%D8%AA%D9%85-%D8%AB%D8%A8%D8%AA-%D9%86%D8%B8%D8%B1%D8%AF%D9%87%DB%8C&highlight=asp+mvc+ajax)

RIG000
پنج شنبه 13 آذر 1393, 11:28 صبح
[HttpGet] public ActionResult _Comment()
{
return View();
}
[HttpPost]
public PartialViewResult _Comment(Comments Com)
{


الان این بالا من یکی get دارم و یکی هم برای post ...
مشکل اینه که من از ویو وقتیدکمه سابمیت رو می زنم باید به post بیاد اما باز میاد به get کد قسمتhttpget رو اجرا میکنه و به postنمی رسه ...
این قسمت هم به این شکل نوشته بودم اما باز جواب نداده بود...! نمی دنم چرا!



@using (Html.BeginForm("_Comment","First",FormMethod.Post))

kahkeshane2012
پنج شنبه 13 آذر 1393, 15:24 عصر
سلام. در این قسمت
@Html.Partial("~/Views/First/_Comment.cshtml",new Comments())
شما اومدید مسیر را به صورت مجازی دادید؛ من خودم وقتی میخوام این کارا کنم بدون مسیر و پسوند فراخوانی میکنم به این صورت:
@Html.Partial("_Comment")

و هم نام پارشیالتون را _comment گذاشتید و هم نام اکشن ینی هم نام هستن اگر اشتباه نکنم من خودم mvc تازه شروع به کار کردم اما به نظرم بهتره که هم نام نباشن این نکته های ریز گاهی هم مشکل ساز میشن....

موفق و پاینده باشید.

r4hgozar
پنج شنبه 13 آذر 1393, 21:11 عصر
سلام.هم نام بودن اشکال نداره.
اما پارشیال رو به این صورت صدا نکن
@Html.Partial("~/Views/First/_Comment.cshtml",new Comments())

و فقط اسم پارشیال رو بنویس.
من این کار رو با ajax انجام دادم به مشکلی نخوردم!!

RIG000
پنج شنبه 13 آذر 1393, 23:10 عصر
مشکل پارشیال نیست. مشکل اینه که اطلاعات به متد پست ارسال نمیشه... من میخام یه مقداری رو با مدل یه اکشنی که از نوع httppost هست بفرستم و به اون post نمیرسه .... پارشیال برای نمایش مورد نداره... منم خودم قبلااین کار رو کردم اما اینبار نمیدونم چشه....