单击时通过输入按钮传递viewbag值

时间:2015-05-20 10:46:35

标签: c# asp.net-mvc

在我的 public class RecyclerViewAdapterTransactions extends RecyclerSwipeAdapter<RecyclerViewAdapterTransactions.SimpleViewHolder>{ public static class SimpleViewHolder extends RecyclerView.ViewHolder { SwipeLayout swipeLayout; ImageButton buttonDelete; ImageButton buttonEdit; TextView textViewAccount; TextView textViewAmount; TextView textViewIncomeExpense; TextView textViewDate; TextView textViewUID; TextView textViewCategory; TextView textViewDescription; TextView textViewType; public SimpleViewHolder(View itemView) { super(itemView); swipeLayout = (SwipeLayout) itemView.findViewById(R.id.swipeLayoutTransactions); buttonDelete = (ImageButton) itemView.findViewById(R.id.imageButtonTransactionDelete); buttonEdit = (ImageButton) itemView.findViewById(R.id.imageButtonTransactionEdit); textViewAmount = (TextView) itemView.findViewById(R.id.textViewAmount); textViewAccount = (TextView) itemView.findViewById(R.id.textViewAccount); textViewIncomeExpense = (TextView) itemView.findViewById(R.id.textViewIncomeExpense); textViewType = (TextView) itemView.findViewById(textViewTransactionType); textViewDate = (TextView) itemView.findViewById(R.id.textViewDateOfTransaction); textViewCategory = (TextView) itemView.findViewById(R.id.textViewCategory); textViewUID = (TextView) itemView.findViewById(R.id.id); textViewDescription = (TextView) itemView.findViewById(R.id.textViewDescription); } } private Context mContext; private ArrayList<String> account; private ArrayList<String> amount; private ArrayList<String> incomeExpense; private ArrayList<String> type; private ArrayList<String> date; private ArrayList<String> category; private ArrayList<String> uid; private ArrayList<String> description; public RecyclerViewAdapterTransactions(Context context, ArrayList<String> account, ArrayList<String> amount, ArrayList<String> incomeExpense, ArrayList<String> type, ArrayList<String> date, ArrayList<String> category, ArrayList<String> uid, ArrayList<String> description) { this.mContext = context; this.account = account; this.amount = amount; this.incomeExpense = incomeExpense; this.type = type; this.date = date; this.category = category; this.uid = uid; this.description = description; } @Override public SimpleViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.listview_transactions, parent, false); return new SimpleViewHolder(view); } @Override public void onBindViewHolder(final SimpleViewHolder viewHolder, final int position) { String itemAccount = account.get(position); String itemAmount = amount.get(position); String itemIncomeExpense = incomeExpense.get(position); String itemType = type.get(position); String itemDate = date.get(position); String itemCategory = category.get(position); String itemDescription = description.get(position); final String itemID = uid.get(position); viewHolder.swipeLayout.setShowMode(SwipeLayout.ShowMode.LayDown); viewHolder.buttonDelete.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { mItemManger.removeShownLayouts(viewHolder.swipeLayout); account.remove(position); amount.remove(position); incomeExpense.remove(position); type.remove(position); date.remove(position); category.remove(position); uid.remove(position); description.remove(position); notifyItemRemoved(position); notifyItemRangeChanged(position, account.size()); mItemManger.closeAllItems(); TransactionsDatabase transactionsDatabase = new TransactionsDatabase(mContext); transactionsDatabase.open(); transactionsDatabase.deleteEntry(itemID); transactionsDatabase.close(); } }); viewHolder.buttonEdit.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent = new Intent(); intent.setClass(mContext, EditTransaction.class); intent.putExtra("account", account.get(position));// intent.putExtra("amount", amount.get(position));// intent.putExtra("incomeExpense", incomeExpense.get(position));// intent.putExtra("type", type.get(position));// intent.putExtra("date", date.get(position));// intent.putExtra("category", category.get(position));// intent.putExtra("uid", uid.get(position)); intent.putExtra("description", description.get(position));// mContext.startActivity(intent); } }); Typeface robotoTypeFace = Typeface.createFromAsset(mContext.getAssets(), "fonts/Roboto-Thin.ttf"); viewHolder.textViewAccount.setText(itemAccount); viewHolder.textViewAmount.setText(itemAmount); viewHolder.textViewIncomeExpense.setText(itemIncomeExpense); viewHolder.textViewType.setText(itemType); viewHolder.textViewDate.setText(itemDate); viewHolder.textViewCategory.setText(itemCategory); viewHolder.textViewUID.setText(itemID); viewHolder.textViewDescription.setText(itemDescription); viewHolder.textViewAccount.setTypeface(robotoTypeFace); viewHolder.textViewAmount.setTypeface(robotoTypeFace); viewHolder.textViewIncomeExpense.setTypeface(robotoTypeFace); viewHolder.textViewType.setTypeface(robotoTypeFace); viewHolder.textViewDate.setTypeface(robotoTypeFace); viewHolder.textViewCategory.setTypeface(robotoTypeFace); viewHolder.textViewUID.setTypeface(robotoTypeFace); viewHolder.textViewDescription.setTypeface(robotoTypeFace); mItemManger.bindView(viewHolder.itemView, position); } @Override public int getItemCount() { return uid.size(); } @Override public int getSwipeLayoutResourceId(int position) { return R.id.swipeLayoutTransactions; } } 视图中,我有一个名为index的过滤器,我通过currentFilter传递到我的edit视图,如下所示:

ViewBag

在我的编辑视图中,我有3个提交按钮,如下所示:

@Html.ActionLink("Edit", "Edit", new { evpId = item.EvpId, currentFilter = ViewBag.CurrentFilter })

然后终于在我的控制器中我正在做一个开关,它会重定向到每个按钮的相应Post动作。

    <div class="form-group">
        <div class="col-md-offset-2 col-md-10">
            <input id="btnSubmitSave" type="submit" name="submitButton" value="Save" class="btn btn-default cancel"  />
            <input id="btnSubmitResolve" type="submit" name="submitButton" value="Resolve" class="btn btn-default" />
            <input id="btnSubmitUnResolvable" type="submit"name="submitButton" value="UnResolvable" class="btn btn-default cancel" />
        </div>
    </div>
</div>

我希望通过单击按钮传递[HttpPost] public ActionResult Edit(string submitButton, PersonViewModel modifiedPersonViewModel) { switch (submitButton) { case "Save": return (Save(modifiedPersonViewModel)); case "Resolve": return (Resolve(modifiedPersonViewModel)); case "UnResolvable": return (UnResolvable(modifiedPersonViewModel)); default: return (View()); } } 值,如果他们点击保存例如当前,当他们返回currentFilter视图时,过滤器丢失并且他们必须输入再一次,我只是不知道如何通过输入标签传递这个?

1 个答案:

答案 0 :(得分:2)

您可以在表单中插入类型为hidden的输入:

<input type="hidden" name="currentFilter" value="@Model.CurrentFilter" />
<input id="btnSubmitSave" type="submit" name="submitButton" value="Save" class="btn btn-default cancel"  />
<input id="btnSubmitResolve" type="submit" name="submitButton" value="Resolve" class="btn btn-default" />
<input id="btnSubmitUnResolvable" type="submit"name="submitButton" value="Unresolvable" class="btn btn-default cancel"  />

您需要将CurrentFilter属性附加到编辑模型。 然后您可以在操作中使用此值:

public ActionResult Edit(string currentFilter, string submitButton, PersonViewModel modifiedPersonViewModel)
{
    ...
}