PDA

View Full Version : صدا کردن اکشن post های متفاوت هنگامکلیک بر روی دکمه ها



resident
جمعه 11 اردیبهشت 1394, 22:22 عصر
من توفرمم سه تا دکمه دارم. میخوام روی هر کدوم که کلیک شد یه اکشن post اجرا بشه. این کار به جز ایجکس روش دیگه ای داره؟؟

GILAS_MVC
شنبه 12 اردیبهشت 1394, 15:25 عصر
سلام
یک کلاس جدید اضافه کنید



using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Web;
using System.Web.Mvc;

namespace MyProject.Services
{
[AttributeUsage(AttributeTargets.Method, AllowMultiple = false, Inherited = true)]
public class MultipleButtonAttribute : ActionNameSelectorAttribute
{
public string Name { get; set; }
public string Argument { get; set; }

public override bool IsValidName(ControllerContext controllerContext, string actionName, MethodInfo methodInfo)
{
var isValidName = false;
var keyValue = string.Format("{0}:{1}", Name, Argument);
var value = controllerContext.Controller.ValueProvider.GetValu e(keyValue);

if (value != null)
{
controllerContext.Controller.ControllerContext.Rou teData.Values[Name] = Argument;
isValidName = true;
}

return isValidName;
}
}
}



رو اکشن مورد نظر این پروپرتی رو اعمال کنیذ


[MultipleButton(Name = "action", Argument = "Save")]
public ActionResult Create(MyModel model)
{



در ویو هم



<input type="submit" value="ثبت" name="action:Save" class="btn btn-primary" id="sabt" />
<input type="submit" value="ثبت و بازگشت" name="action:SaveAndBack" class="btn btn-primary" id="sabtandback" />

resident
شنبه 12 اردیبهشت 1394, 17:40 عصر
خیلی ممنون از وقتی که گذاشتید. سوال من چیز دیگه ی بود ولی خب با این روش همبه نوعی کارم راه می افته.
فقط یه مشکل هست: چطور می تونم برای یک اکشن چندین actionname تعیین کنم؟
کد زیر رو نوشتم:

[MultipleButton(Name = "action", Argument = "xxx")]
[MultipleButton(Name = "action", Argument = "yyy")]
[HttpPost]
public ActionResult CompanyReport(CommonCompanyReport entityReport)
{
...
}

اما خطای زیر رو میده:

Duplicate 'MultipleButton' attribute

تو همون مثال خودتون چطور میشه برای save , saveBak اتریبیوت MultipleButton تعریف کرد؟

resident
یک شنبه 13 اردیبهشت 1394, 08:44 صبح
حل شد ممنون.